将 Java-Pair-Rdd 转换为 Rdd

2024-02-15

我需要将 Java-pair-rdd 转换为 csv :

所以我想将其转换为rdd,来解决我的问题。

我想要的是改变我的rdd 从 :

Key   Value
Jack  [a,b,c]

to :

Key  value
Jack  a
Jack  b
Jack  c

我认为这是可能的issue https://stackoverflow.com/questions/39504400/load-spark-rdd-to-neo4j-in-python?noredirect=1#comment89507177_39504400并在本期(PySpark:将一对 RDD 转换回常规 RDD https://stackoverflow.com/questions/32971315/pyspark-convert-a-pair-rdd-back-to-a-regular-rdd/32975221#comment89543754_32975221) 所以我想问如何在java中做到这一点?

问题更新

我的类型JavaPairRdd属于类型:

JavaPairRDD<Tuple2<String,String>, Iterable<Tuple1<String>>>

这是包含以下行的形式:

((dr5rvey,dr5ruku),[(2,01/09/2013 00:09,01/09/2013 00:27,N,1,-73.9287262,40.75831223,-73.98726654,40.76442719,2,3.96,16,0.5,0.5,4.25,0,,21.25,1,)])

the key这是 :(dr5rvey,dr5ruku)value is [(2,01/09/2013 00:09,01/09/2013 00:27,N,1,-73.9287262,40.75831223,-73.98726654,40.76442719,2,3.96,16,0.5,0.5,4.25,0,,21.25,1,)]

我原来的JavaRdd属于类型:

JavaRDD<String>

了解应该保留密钥,您可以使用 flatMapValues 函数:

通过一个 flatMap 函数将键值对 RDD 中的每个值传递出去,而不改变键; ...

JavaPairRDD<Tuple2<String,String>, Iterable<Tuple1<String>>> input = ...;
JavaPairRDD<Tuple2<String, String>, Tuple1<String>> output1 = input.flatMapValues(iter -> iter);
JavaPairRDD<Tuple2<String, String>, String> output2 = output1.mapValues(t1 -> t1._1());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Java-Pair-Rdd 转换为 Rdd 的相关文章

随机推荐