PYSPARK偏斜的数据重复数据删除方法

问题描述 投票:0回答:1

根据< 3 columns here>partition by

中指定的sphark分区数据,如果数据偏斜,则某些分区非常大,并且不适合内存。

解决方案是应用两个阶段row_number重复数据删除: 首先使用带有一些随机值的播种分区 第二步-Row_number无随机种子。

示例:
apache-spark pyspark duplicates row-number
1个回答
0
投票
这偏斜,运行非常慢。

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')
这将快速工作

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.