pyspark 中去重操作
distinct
- rdd、dataframe 均可使用
按照某一列进行去重
1 使用reduceByKey
-
rdd 使用
-
例子:对x[0] 进行去重,将x[0]作为key,其余作为value,(x[0],v),使用 reduceByKey(lambda x,y:x) 即可
2 使用dropDuplicates(drop_duplicates)
-
dataframe 使用
-
df.dropDuplicates([col_name1, col_name2])
3 开窗函数 ROW_NUMBER()
F.row_number().over(Window.partitionBy(col_name1).orderBy(col_name2))