我们知道在spark中有一个方法rdd.collect可以将RDD转换为列表。
List<String> f= rdd.collect();
String[] array = f.toArray(new String[f.size()]);
我正试图在我的项目中完全相反。我有一个StringList,我想转换为JavaRDD。我正在寻找这个解决方案很长一段时间但没有找到答案。有人可以帮帮我吗?
答案 0 :(得分:53)
你正在寻找JavaSparkContext.parallelize(List)
和类似的。这就像在Scala API中一样。
答案 1 :(得分:4)
添加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);
答案 2 :(得分:3)
有两种方法可以将集合转换为RDD。
1) sc.Parallelize(collection)
2) sc.makeRDD(collection)
两种方法都是相同的,所以我们可以使用它们中的任何一种
答案 3 :(得分:-2)
collations