我們知道在spark中有一個方法rdd.collect將RDD轉換爲列表。如何將列表轉換爲JavaRDD
List<String> f= rdd.collect();
String[] array = f.toArray(new String[f.size()]);
我想在我的項目中完全相反。我有一個我想要轉換爲JavaRDD的String的ArrayList。我正在尋找這個解決方案很長一段時間,但還沒有找到答案。任何人都可以幫我在這裏嗎?
我們知道在spark中有一個方法rdd.collect將RDD轉換爲列表。如何將列表轉換爲JavaRDD
List<String> f= rdd.collect();
String[] array = f.toArray(new String[f.size()]);
我想在我的項目中完全相反。我有一個我想要轉換爲JavaRDD的String的ArrayList。我正在尋找這個解決方案很長一段時間,但還沒有找到答案。任何人都可以幫我在這裏嗎?
您正在尋找JavaSparkContext.parallelize(List)
及其他。這就像在Scala API中一樣。
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();
添加到肖恩·歐文和其他解決方案
可以使用JavaSparkContext#parallelizePairs
爲Tuple
List
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);
感謝您的幫助肖恩。將其轉換成JavaRDD列表。 –
你對火花上的「JdbcRDD」有什麼想法嗎?我試圖用Java實現它,但沒有任何關於它的帖子或示例。我有一個鏈接(https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/JdbcRDD.scala)。但我無法理解它的scala代碼。 –
@AmitabhRanjan需要一個單獨的問題 – samthebest