我正在尝试通过对几个列使用dropDuplicates()来删除spark数据帧中的重复项。但是由于大量的混洗和数据倾斜,作业被挂起了。为此,我使用了5个内核和30 do的内存。我正在执行dropDuplicates()的数据大约是1,200万行。
考虑到数据倾斜和混洗,请给我建议在spark中删除重复项的最优方法。
发布于 2018-09-25 13:23:33
删除重复操作是一个开销很大的操作,因为它会将一个RDD中的值与所有其他RDD进行比较,并尝试合并结果。考虑到数据的大小,结果可能会很耗时。
我建议对dataframe的列进行groupby转换,然后执行提交操作。这样,只有来自RDD的合并结果才会与其他懒惰的RDD进行比较,然后您可以通过任何操作(如commit / show等)请求结果
transactions.groupBy("col1”,”col2").count.sort($"count".desc).showhttps://stackoverflow.com/questions/52486058
复制相似问题