簡體   English   中英

使用 pyspark 連接三個數據幀

[英]Join three dataframes with pyspark

我有三個數據框:

df1:                         df2:                           df3:
+--- +--------+               +--------+-------+             +----+----------+
| id1|category|               |category| values|             | id2|    values|
+----+--------+               +--------+-------+             +----+----------+ 
|   0|       C|               |       A|     v1|             |   0|    v2, v3|
|   1|       B|               |       A|     v2|             |   1|        v1|
|   2|       C|               |       A|     v3|             |   2|    v1, v3|
|   3|       A|               |       B|     v4|             |   3|v1, V2, v3|
|   4|       A|               |       B|     v5|             |   4|        v3|
|   5|       B|               |       B|     v6|             |   5|    v1, v2|
|   6|       C|               |       B|     v7|             |   6|        v3|
|   7|       A|               |       C|     v8|             +----+----------+
|   8|       B|               |       C|     v9|
|   9|       B|               |       C|    v10|
+----+--------+               |       C|    v11|
                              +--------+-------+ 

通過指令在 df1 和 df3 之間進行交叉連接后:

df=df1.crossJoin(df3.select("id2")).select("id1", "id2")

我想添加一個新列( newCloumn ),必須像這樣填寫:如果類別列包含列中的至少一個值,則為1 ,否則為0

如果您還重命名兩個數據框中的列“類別”(例如:類別 1 和類別 2),這將更實用。 試試這個,我想這就是你要找的

df=df.select(col("id1").alias("id"), "id2")
df4=df.join(df1, df.id==df1.id1).drop("id").join(df2, df4.category1==df2.category2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM