尝试为a列和b列(如下)的不同值提取具有最新日期的记录
理想结果:
当前解决方案:
from pyspark.sql import functions as f
test = df.groupBy(df['A'], df['B']).agg(f.first(df['C']), f.first(df['D']), f.max(df['E']))
有没有漏洞可以寻找或建议优化以上?
尝试为a列和b列(如下)的不同值提取具有最新日期的记录
理想结果:
当前解决方案:
from pyspark.sql import functions as f
test = df.groupBy(df['A'], df['B']).agg(f.first(df['C']), f.first(df['D']), f.max(df['E']))
有没有漏洞可以寻找或建议优化以上?
2条答案
按热度按时间qij5mzcb1#
您可以对e列进行降序排序,然后使用
row_number
函数只提取最新数据。z5btuh9x2#
使用
Window
函数max
在date
列并使用它filter
.如果
E(date)
列为not of StringType
,使用此选项:输出: