Apache spark Spark window函数过滤不带';不符合要求
我想做的是最大限度地利用两排的窗口。并删除最后一行,因为它只计算一行 例如,下面是源数据 秒 价值 225 1.5 245 0.5 300 2.4 319 1.2 320 4.6Apache 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
您可以根据递减秒数分配行号,并使用筛选器删除最后一行:
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|
+-------+---+