我试图使用scala将spark数据框列的不同值收集到列表中。我曾尝试不同的选择:将spark数据帧列值收集到列表中的快速方法(scala)
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
的感谢!
使用'收集()'应该已经是一个集合,但肯定的,因为所有的数据被混洗到你的机器很慢,这不是应该如何使用火星 –
感谢您的答案。我知道“收集”和类似的东西应该尽可能避免,但我恐怕我需要一个.. – vrivesmolina