Apache Spark将RDD的集合转换为单个RDD JAVA

时间:2016-04-16 18:56:33

标签: java collections apache-spark rdd hadoop2

我的Java代码中有以下RDD。

(1, List(1596, 1617, 1929, 2399, 2674))
(2, List(1702, 1785, 1933, 2054, 2583, 2913))
(3, List(1982, 2002, 2048, 2341, 2666))

我要做的是创建另一个RDD。内容应该如下所示(不一定是相同的顺序)

1596
1617
1929
2399
2674
1702
1785
1933
2054
2583
2913
1982
2002
2048
2341
2666

我不确定如何将带有对象集合的一个RDD (JavaRDD<ArrayList<String>>)转换为包含其中所有对象的单个RDD (JavaRDD<String>)。如果有人能指出我的JAVA资源,我将非常感激。

1 个答案:

答案 0 :(得分:0)

您可以在scala中执行相同操作,如下所示

val data = List((1, List(1596, 1617, 1929, 2399, 2674)),
    (2, List(1702, 1785, 1933, 2054, 2583, 2913)),
    (3, List(1982, 2002, 2048, 2341, 2666)))

val rdd_data = sc.parallelize(data)
val rdd_flattened = rdd_data.flatMap((index, value) => value)