我正在尝试使用 scala 将 Spark 数据帧列的不同值收集到列表中。我尝试了不同的选择:
df.select(columns_name).distinct().rdd.map(r => r(0).toString).collect().toList
df.groupBy(col(column_name)).agg(collect_list(col(column_name))).rdd.map(r => r(0).toString).collect().toList
它们都有效,但对于我的数据量,这个过程非常慢,所以我正在尝试加快速度。有人有我可以尝试的建议吗?
我正在使用火花 2.1.1
谢谢!
你可以试试
df.select("colName").dropDuplicates().rdd.map(row =>row(0)).collect.toList
或者你可以试试
df.select("colName").dropDuplicates().withColumn("colName", collect_list("colName")).rdd.map(row =>row(0)).collect