如何在不收集的情况下将rdd/数据帧/数据集转换为Spark Scala中的字符串/列表
Spark DataFrame/Dataset/RDD是分布式数据的集合,另一方面,List是一个集合,而不是分布式的。
因此,将RDD转换为列表的唯一方法是将RDD的所有分区带到单个JVM并将其转换为列表。
简而言之,收集是做你正在做的事情的唯一合适方法。
假设您正在尝试将行中的每一列都设置为由分隔符分隔的字符串
将 RDD 行转换为字符串
val out_rdd = rdd.map(x => x.mkString(",")
将数据帧/数据集行转换为字符串
val out_rdd = df.rdd.map(x => x.mkString(",")
希望这有帮助!