Pyspark orderBy asc nulls último

Oct 08 2020

En Spark sql, puede usar asc_nulls_lasten un orderBy, por ejemplo

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

consulte Cambiar el orden de nulos en Spark SQL .

¿Cómo harías esto en pyspark?

Estoy usando esto específicamente para hacer una especie de "ventana sobre":

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

donde la datetimecolumna puede ser una fecha y hora o un valor nulo.

Esperaba hacerlo con:

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

Pero estos errores con Exception: mismatched input 'NULLS' expecting <EOF>

Respuestas

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()))
)