Pyspark orderBy asc nulls last
Oct 08 2020
In spark sql können Sie asc_nulls_lastin einer Bestellung verwenden, z
df.select('*').orderBy(column.asc_nulls_last).show
Siehe Ändern der Nullreihenfolge in Spark SQL .
Wie würden Sie das in pyspark machen?
Ich benutze dies speziell, um so etwas wie ein "Fenster über" zu machen:
df = df.withColumn(
'rank',
row_number().over(Window.partitionBy('group_id').orderBy('datetime'))
)
Dabei kann die datetimeSpalte datetime oder null sein.
Ich hatte gehofft, es zu tun mit:
...orderBy(expr('column asc NULLS last'))
Aber dieser Fehler mit Exception: mismatched input 'NULLS' expecting <EOF>
Antworten
3 busfighter Oct 08 2020 at 04:05
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()))
)