Apache spark Spark window函数过滤不带';不符合要求

Apache spark Spark window函数过滤不带';不符合要求,apache-spark,apache-spark-sql,window-functions,Apache Spark,Apache Spark Sql,Window Functions,我想做的是最大限度地利用两排的窗口。并删除最后一行,因为它只计算一行 例如,下面是源数据 秒 价值 225 1.5 245 0.5 300 2.4 319 1.2 320 4.6 您可以根据递减秒数分配行号,并使用筛选器删除最后一行: from pyspark.sql import functions as F, Window df2 = df.withColumn( 'max', F.max('value').over(Window.orderBy('seconds').ro

我想做的是最大限度地利用两排的窗口。并删除最后一行,因为它只计算一行

例如,下面是源数据

秒 价值 225 1.5 245 0.5 300 2.4 319 1.2 320 4.6
您可以根据递减秒数分配行号,并使用筛选器删除最后一行:

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|
+-------+---+