根据< 3 columns here>partition by
解决方案是应用两个阶段row_number重复数据删除: 首先使用带有一些随机值的播种分区 第二步-Row_number无随机种子。
示例:row_number()
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')
这将快速工作