我想做的是得到两排Windows的最大值。并删除最后一行,因为它只计算一行。例如,下面是源数据二级值2251.52450.53002.43191.23204.6下表就是我想要的。它下降了320秒,因为它是最新的,它只有自己的。第二封MAX2251.52452.43002.43194.6
aij0ehis1#
您可以根据降序秒数指定行号,并使用筛选器删除最后一行:
from pyspark.sql import functions as F, Window df2 = df.withColumn( 'max', F.max('value').over(Window.orderBy('seconds').rowsBetween(0, 1)) ).withColumn( 'rn', F.row_number().over(Window.orderBy(F.desc('seconds'))) ).filter('rn != 1').drop('rn', 'value') df2.show() +-------+---+ |seconds|max| +-------+---+ | 319|4.6| | 300|2.4| | 245|2.4| | 225|1.5| +-------+---+
1条答案
按热度按时间aij0ehis1#
您可以根据降序秒数指定行号,并使用筛选器删除最后一行: