这个问题在这里已经有答案了:
如何在不使用collect函数的情况下有效地将rdd转换为list(3个答案)去年关门了。如何在sparkscala中将rdd/data-frame/dataset转换为string/list而无需collect
vs91vp4v1#
假设您正在尝试将行中的每一列作为一个由分隔符分隔的字符串
val out_rdd = rdd.map(x => x.mkString(",")
val out_rdd = df.rdd.map(x => x.mkString(",")
希望这有帮助!
p1iqtdky2#
spark-dataframe/dataset/rdd是一个数据集合,而list是一个集合而不是分布式的。因此,将rdd转换为列表的唯一方法是将rdd的所有分区都放到一个jvm中,并将其转换为列表。这将是一个有效的收集行动。简而言之,收集是做你正在做的事情的唯一合适的方法。
2条答案
按热度按时间vs91vp4v1#
假设您正在尝试将行中的每一列作为一个由分隔符分隔的字符串
将rdd行转换为字符串
将Dataframe/数据集行转换为字符串
希望这有帮助!
p1iqtdky2#
spark-dataframe/dataset/rdd是一个数据集合,而list是一个集合而不是分布式的。
因此,将rdd转换为列表的唯一方法是将rdd的所有分区都放到一个jvm中,并将其转换为列表。这将是一个有效的收集行动。
简而言之,收集是做你正在做的事情的唯一合适的方法。