Динамический столбец window.partitionBy в Pyspark - PullRequest
0 голосов
/ 07 ноября 2019

Я создал два фрейма данных. df_stg_raw фрейм данных содержит повторяющиеся записи. df_qualify фрейм данных содержит meta-information, например, partition & order зависит от того, какой столбец. Я хочу удалить дубликаты записей с помощью функции window, доступной в PySpark.

df_stg_raw
==================================================
ACCNT_ID     NAME     SomeRandomID     TABLE_NM
==================================================
1            A          123             TblA
1            A          123             TblA
2            B          124             TblA
2            B          124             TblA
3            C          125             TblA
3            C          125             TblA

df_qualify
==================================================
TABLE_NM       QUALIFY_TXT    ODER_BY
==================================================
TblA          'ACCNT_ID'     'SomeRandomID'

Для решения этой задачи я перекрестно соединяю два фрейма данных. Однако я не могу передать столбец paritionBy & orderBy динамически, который присутствует в кадре данных df_qualify.

df_final = df_stg_raw.join(df_qualify, df_stg_raw.TABLE_NM == df_qualify.TABLE_NM, how = "cross") \
    .withColumn("row_num", row_number().over(window.partitionBy('**dynamic_part_col**').orderBy('**dynamic_order_col**')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...