根据
partition by
< 3 columns here>中指定的sphark分区数据,如果数据偏斜,则某些分区非常大,并且不适合内存。
示例:
row_number()
Solution:
add
df1= spark.sql('select * from
(
select t.*,
row_number() over(partition by col1, col2 order by col3) rn
from mytable t) s where rn=1')
对分区的添加,它将产生随机数和除以20个零件
然后进行重复数据删除
FLOOR(RAND()*100)%20
在没有随机数
的情况下再次重复进行删除df1= spark.sql('select col1, col2, coln from
(
select t.*,
row_number() over(partition by col1, col2, FLOOR(RAND()*100)%20 order by col3) rn
from mytable t) s where rn=1')
这将快速工作