Подтвердить что ты не робот

Как конвертировать список в JavaRDD

Мы знаем, что в искре есть метод rdd.collect, который преобразует RDD в список.

List<String> f= rdd.collect();
String[] array = f.toArray(new String[f.size()]);

Я пытаюсь сделать прямо противоположное в моем проекте. У меня есть ArrayList из String, который я хочу преобразовать в JavaRDD. Я ищу это решение довольно долгое время, но не нашел ответа. Кто-нибудь может помочь мне здесь?

4b9b3361

Ответ 2

Существует два способа преобразования коллекции в RDD.

1) sc.Parallelize(collection)
2) sc.makeRDD(collection)

Оба метода идентичны, поэтому мы можем использовать любой из них

Ответ 3

Добавление в Sean Owen и другие решения

Вы можете использовать JavaSparkContext#parallelizePairs для List Tuple

List<Tuple2<Integer, Integer>> pairs = new ArrayList<>();
pairs.add(new Tuple2<>(0, 5));
pairs.add(new Tuple2<>(1, 3));

JavaSparkContext sc = new JavaSparkContext();

JavaPairRDD<Integer, Integer> rdd = sc.parallelizePairs(pairs);

Ответ 4

List<StructField> fields = new ArrayList<>();
fields.add(DataTypes.createStructField("fieldx1", DataTypes.StringType, true));
fields.add(DataTypes.createStructField("fieldx2", DataTypes.StringType, true));
fields.add(DataTypes.createStructField("fieldx3", DataTypes.LongType, true));


List<Row> data = new ArrayList<>();
data.add(RowFactory.create("","",""));
Dataset<Row> rawDataSet = spark.createDataFrame(data, schema).toDF();