我正在處理一個巨大的 pyspark 資料集,我必須根據一些條件洗掉幾條記錄。例如,我的源DF看起來是這樣的:
>>> BUSINESS_INFO
業務模型|分類|地區|最大位置
______________________________________________________________
0食品配送|流行|南方| 2
1 體育 | 成功 | 西方 | 3
2 健身 | 流行 | 東南 | 1
3視頻|著名|東部|4
現在,我必須使用上面的資料來定義我必須從這個資料框中洗掉哪些行:
APP_RANK_AT_THE_STORE
業務模式|分類|地區|日期|排名
_____________________________________________________________________
0 food delivery | popular | South | 202105-01 | 1
1 送餐|熱門|南方 | 2021-05-01 | 2
2 送餐|熱門|南方 | 2021-05-01 | 3
3體育|成功|西部|2021-05-02|1
4體育 | 成功 | 西部 | 2021-05-02 | 2
5體育 | 成功 | 西部 | 2021-05-02 | 3
6視頻|著名|東方|2021-05-03 | 1
7 videos | famous | East | 2021-05-03 | 2
8 videos | famous | East | 2021-05-03 | 3 !
9 videos | famous | East | 2021-05-03 | 4 !
10 videos | famous | East | 2021-05-03 | 5 !
11健身|流行|東南| 2021-05-04| 1
12健身|流行|東南| 2021-05-04| 2
13健身|流行|東南| 2021-05-04| 3
基本上,我必須從第二個資料框中洗掉所有不符合 BUSINESS_INFO 資料框上設定的標準的資料。因此,舉例來說。我的資料框中只能有商業模式為食品遞送、分類為流行、地區為南方時的前兩條記錄。其他的都會被洗掉,結果會是這樣的:
FINAL_DF
商業模式|分類|地區|日期|等級
_____________________________________________________________________
0 food delivery | popular | South | 202105-01 | 1
1 送餐|熱門|南方 | 2021-05-01 | 2
2體育|成功|西部|2021-05-02|1
3體育 | 成功 | 西部 | 2021-05-02 | 2
4 體育 | 成功 | 西方 | 2021-05-02 | 3 3
5視頻|著名|東方|2021-05-03|1
6 videos | famous | East | 2021-05-03 | 2
7 videos | famous | East | 2021-05-03 | 3 !
8 videos | famous | East | 2021-05-03 | 4 !
9健身|流行|東南|2021-05-04|1
有什么辦法可以做到嗎? 謝謝你!
uj5u.com熱心網友回復:
你可以做一個普通的連接(默認為Pyspark中的內連接),并使用>=或<=條件,像這樣
(df1
.join(df2, on=[
df1['business_model'] == df2['business_model'] 。
df1['classification'] == df2['classification']。
df1['max_position'] >= df2['rank']。
])
.drop(df2['business_model'])
.drop(df2['classification'])
.drop(df1['max_position'])
.show()
)
# 輸出# -------------- -------------- --------- --------- ---------- ----
# |business_model|classification| region| date|rank|
# -------------- -------------- --------- --------- ---------- ----
# |體育|成功|西|西|2021-05-02| 1|
# |體育|成功|西|西|2021-05-02| 2|
# |體育|成功|西|西|2021-05-02|3|>
# |視頻|著名|東|東|2021-05-03| 1|
# | video| famous| East| East|2021-05-03| 2|
# | video| famous| East| East|2021-05-03| 3|
# | video| famous| East| East|2021-05-03| 4|
# | 食品配送|流行|南|南|2021-05-01| 1|
# | 食品配送|流行|南|南|2021-05-01| 2|
# |健身|流行|東南|東南|2021-05-04| 1|
# -------------- -------------- --------- --------- ---------- ----
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/332592.html
標籤:
上一篇:了解切片操作的輸出
