如何将List转换为JavaRDD

时间:2014-07-25 09:28:29

标签: apache-spark

我们知道在spark中有一个方法rdd.collect可以将RDD转换为列表。

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

我正试图在我的项目中完全相反。我有一个StringList,我想转换为JavaRDD。我正在寻找这个解决方案很长一段时间但没有找到答案。有人可以帮帮我吗?

4 个答案:

答案 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