как добавить список значений в кортежи - PullRequest
0 голосов

Я пытался добавить значения существующего списка в кортеж.Это не показывает ошибку компилятора, но выдает ошибку времени выполнения.

Я жестко закодировал некоторые значения списка и попытался добавить значения в кортеж, используя java spark.

    @SuppressWarnings("unchecked")
    public static void main(String[] args)  {

        List<Integer> arr=new ArrayList<Integer>();
        arr.add(1);
        arr.add(4);
        arr.add(16);
        arr.add(16);
        arr.add(25);
        arr.add(36);
        arr.add(49);
        arr.add(64);
        arr.add(100);



        Logger.getLogger("org.apache").setLevel(Level.WARN);
        System.setProperty("hadoop.home.dir", "C:\\packages_for_spark\\hadoop-2.6.0");

            SparkConf sparkConf = new SparkConf().setAppName("First_spark");
            sparkConf.set("spark.master", "local")
            .set("spark.driver.allowMultipleContexts", "true");
         SparkContext sc = new SparkContext(sparkConf);
           JavaSparkContext stc = new JavaSparkContext(sparkConf);




          JavaRDD<Integer> num = stc.parallelize(arr);



          JavaRDD<Tuple7<Integer, Integer, Integer, Integer, Integer, Integer, Integer>> mapped=
                  num.map((rd) -> {
                      List<Integer> rd1= num.collect();

                     return new Tuple7<>(rd1.get(0),rd1.get(1),rd1.get(2),rd1.get(3),rd1.get(4),rd1.get(5),rd1.get(6));



                  });


          mapped.collect().forEach(System.out::println);


    }}

Это не выдает никакой ошибки компилятора,но во время выполнения выдает следующую ошибку:

WARN SparkContext: Multiple running SparkContexts detected in the same JVM!
org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:
org.apache.spark.SparkContext.<init>(SparkContext.scala:76)

1 Ответ

0 голосов
/ 22 мая 2019

Можете ли вы попробовать изменить на

JavaSparkContext jsc = JavaSparkContext.fromSparkContext(sc);
...