pyspark orderby asc最后为空

drnojrws  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(361)

在sparksql中,可以使用 asc_nulls_last 在订货时,如

df.select('*').orderBy(column.asc_nulls_last).show

请参见在spark sql中更改空值顺序。
在Pypark你会怎么做?
我专门用它来做“窗口覆盖”之类的事情:

df = df.withColumn(
    'rank',
    row_number().over(Window.partitionBy('group_id').orderBy('datetime'))
)

在哪里 datetime 列可以是datetime或null。
我希望能用:

...orderBy(expr('column asc NULLS last'))

但是这个错误 Exception: mismatched input 'NULLS' expecting <EOF>

bttbmeg0

bttbmeg01#

from pyspark.sql import functions as F
df = df.withColumn(
    'rank',
    F.row_number().over(Window.partitionBy('group_id').orderBy(F.col('datetime').asc_nulls_last()))
)

相关问题