from pyspark.sql.window import Window
import pyspark.sql.functions as F
#df为目标dataFrame
#Id为存在重复数据的字段
#Time为时间
#以下为取最早的一条数据
window = Window.partitionBy('Id').orderBy(df.Time.asc())
topn_df = df.withColumn('topn',F.row_number().over(window))
new_df = topn_df.filter('topn=1')
#以下为取最晚的一条数据
window = Window.partitionBy('Id').orderBy(df.Time.desc())
topn_df = df.withColumn('topn',F.row_number().over(window))
new_df = topn_df.filter('topn=1')
pyspark取DataFrame某个字段重复数据中,时间最早或最晚的
于 2021-11-26 11:00:17 首次发布