我们知道,在Spark中有一个方法,它将RDD转换为列表。
List<String> f= rdd.collect();
String[] array = f.toArray(new String[f.size()]);
我试图在我的项目中做完全相反的事情。我有一个ArrayList of String,我想将其转换为JavaRDD。我正在寻找这个解决方案很长一段时间,但还没有找到答案。有人能在这里帮我吗?
您正在寻找JavaSparkContext.并行化(列表)
等。这就像在ScalaAPI中一样。
加入肖恩·欧文和其他人的解决方案
您可以将JavaSparkContext#并行对
用于元组
的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);
有两种方法可以将集合转换为RDD。
1) sc.Parallelize(collection)
2) sc.makeRDD(collection)
这两种方法是相同的因此我们可以使用它们中的任何一种