我有一个很大的数据集,它主要在一个执行器上被shuffle读取:https://i.stack.imgur.com/tpi7K.png
我已经实现了所有以前的操作,直到最后一个:写入磁盘。
到目前为止,我已经尝试了各种数量的df.repartition(n)
,但我无法分解这个执行器上的数亿行。
我认为sampleBy
是罪魁祸首--我想均匀地对目标类的值进行采样,但分布严重不平衡。如何在采样后打破分区?
我有一个很大的数据集,它主要在一个执行器上被shuffle读取:https://i.stack.imgur.com/tpi7K.png
我已经实现了所有以前的操作,直到最后一个:写入磁盘。
到目前为止,我已经尝试了各种数量的df.repartition(n)
,但我无法分解这个执行器上的数亿行。
我认为sampleBy
是罪魁祸首--我想均匀地对目标类的值进行采样,但分布严重不平衡。如何在采样后打破分区?
1条答案
按热度按时间bqf10yzr1#
你可能有数据倾斜的问题。你可以尝试在手术中加盐。
示例:spark: How does salting work in dealing with skewed data