gpt4 book ai didi

apache-spark - 如何在同一列pyspark sql中过滤多个条件

转载 作者:行者123 更新时间:2023-12-04 04:51:54 24 4
gpt4 key购买 nike

我有一列如下:

+-------+------------------+-------+
| name| value|user_id|
+-------+------------------+-------+

| user 1| view | 1|
| user 1| processed| 1|
| user 2| view | 3|
| user 3| view | 4|
+-------+------------------+-------+

我想要像下面这样的列。

+-------+------------------+-------+
| name| value|user_id|
+-------+------------------+-------+
| user 2| view | 3|
| user 3| view | 4|
+-------+------------------+-------+

简单地说,删除同时执行这两个操作的 ID。

目前,我有如下两个数据框

df1 = df.where(value=="processed").select("id").distinct()
df2 = df.where(value=="view").select("id").distinct()

现在,如何只获取只有 View 未处理的 ID。或者有更好的方法吗?

最佳答案

一个选项可以是 "leftanti" 自连接,以消除所有包含 "processed"name:

result = df.join(df.where(df.value=="processed") \
.select("name") \
.distinct(),
"name", "leftanti")
result.show()
+------+-----+-------+
| name|value|user_id|
+------+-----+-------+
|user 3| view| 4|
|user 2| view| 3|
+------+-----+-------+

关于apache-spark - 如何在同一列pyspark sql中过滤多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44986765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com