我是pyspark的新手,我想在column2项目列表中找到column1项目。让我们举个例子
让我们用google search-3列来举一个简单的例子-query
-string、hrefs
-list和clicked_url
-string,我需要检查clicked_url
是否在hrefs
中
可能出现3种情况:
如果单击的url在hrefs列表中,则保留该行
如果单击的url不在hrefs列表中,则过滤掉该行-删除。(你可以想象一下点击广告)
如果单击的url为空(没有单击的url),则保留该行,但将单击的url的值更改为0
query | hrefs | clicked_url
------------------------------------
car |[url1,...url10] | url1
monkey |[url11,...url20]| url11
mouse |[url21,...url30]| url11
donkey |[url31,...url40]| "" - empty string
ball |[url41,...url50]| url45
monkey |[url11,...url20]| url1
期望输出:
query | hrefs | clicked_url
------------------------------------
car |[url1,...url10] | url1
monkey |[url11,...url20]| url11
donkey |[url31,...url40]| 0
ball |[url41,...url50]| url45
提前谢谢
试试这个:
Pyspark实现这一点的方法:
对于
array_contains
您只需使用表达式F.expr
即可将value
部分作为列发送由于
.filter
也可以接受expression
,因此您只能在那里输入array_contains
相关问题 更多 >
编程相关推荐