【问题标题】:Write JavaPairRdd to Csv将 JavaPairRdd 写入 Csv
【发布时间】:2018-12-17 05:15:30
【问题描述】:
JavaPairRdd 有saveAsTextfile 函数,可以将数据保存为文本格式。
不过,我需要将数据保存为 CSV 文件,以便稍后在 Neo4j 中使用。
我的问题是:
如何将 JavaPairRdd 的数据保存为 CSV 格式?或者有没有办法将rdd从:
Key Value
Jack [a,b,c]
到:
Key value
Jack a
Jack b
Jack c
【问题讨论】:
标签:
java
apache-spark
rdd
key-value
java-pair-rdd
【解决方案1】:
您应该在您的 JavaPairRdd 上使用 flatMapValues 函数:Pass each value in the key-value pair RDD through a flatMap function without changing the keys; this also retains the original RDD's partitioning.
只需返回值,它就会在输入列表中为每个元素创建一行,并保留键。
// In Java
JavaPairRDD<Object, List<String>> input = ...;
JavaPairRDD<Object, String> output = input.flatMapValues((Function<List<String>, Iterable<String>>) Functions.identity());