我得到了一个Dataframe,我需要检查下面的三列来过滤正确的行。
给定Dataframe输入:
customer_number acct_registration_ts last_login_ts acct_create_ts
28017150 null null 2018-02-13T00:43:26.747+0000
28017150 null null 2014-09-11T15:58:29.593+0000
28017150 2014-05-14T23:11:40.167+0000 null 2014-05-12T00:00:00.000+0000
预期的Dataframe输出:
customer_number acct_registration_ts last_login_ts acct_create_ts
28017150 2014-05-14T23:11:40.167+0000 null 2014-05-12T00:00:00.000+0000
过滤条件:
如果acct\u registration不为空,则获取acct\u registration行的最大值。
如果acct\u registration\u ts为空,则检查上次登录\u ts,如果上次登录\u ts不为空,则获取上次登录\u ts行的最大值。
如果acct\u registration\u ts和last\u login\u ts都为空,则获取acct\u create\u ts行的最大值。
这里我需要按customer\u number列分组,然后应用上述3种过滤逻辑。我尝试了pyspark窗口函数,但没有得到预期的输出。任何帮助都将不胜感激。
1条答案
按热度按时间n3schb8v1#
您可以在所有三列中使用一个窗口: