![](/img/trans.png)
[英]How to get the subset dataframe from the dataframe in python?
[英]How to get this kind of subset from a DataFrame in Pyspark?
比如我有下面的DataFrame
+-----+----+------+
| idx | id | type |
+-----+----+------+
| 0 | 10 | a |
| 1 | 10 | b |
| 2 | 20 | b |
| 3 | 30 | a |
+-----+----+------+
我想要通過以下順序步驟獲得這樣的子集:
type
a 的所有id
id
是10和30id
與上面相同的所有行
0
, 1
和3
被選中結果子集 DataFrame 是:
+-----+----+------+
| idx | id | type |
+-----+----+------+
| 0 | 10 | a |
| 1 | 10 | b |
| 3 | 30 | a |
+-----+----+------+
如何在pyspark
中實現這一點? 提前致謝。
另一個后續問題,如何實現以下。
如果步驟更改為:
id
與上面不同的所有行
2
行被選中,因為只有這一行的id
不是10或30生成的 DataFrame 應該是:
+-----+----+------+
| idx | id | type |
+-----+----+------+
| 2 | 20 | b |
+-----+----+------+
您可以使用過濾器和連接操作。 1.
filterDF = dataDF.filter(dataDF.type == "a")
joinedDS = dataDF.join(filterDF, on="id")
對於第 2 點,您可以使用 left_anti 加入
joinedDS1 = dataDF.join(joinedDS, on="id", how='left_anti')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.