pyspark将两个数据框与添加的项/条件合并

时间:2020-03-13 05:46:53

标签: python-3.x dataframe join pyspark

我有两个数据框,如下所示。 如果有人买东西,我们也可以推荐类似的产品。

df1列出了每个人购买的物品。 df2推荐了附加产品。 例如,“ Gopu”购买面包,那么我必须推荐“黄油”和“果酱”

如果没有添加的产品项(来自df2),则它不需要出现在输出中。对于(例如)“ Gopu”购买了“饼干”项目,但没有df2推荐的附加项目。因此,它不会出现在输出表中。谢谢

靠左的简单df1.df2加入对我不起作用。

df1:
name  product
Gopu  biscuit
Gopu  bun
Gopu  ink
Aish  ball
Aish  doll
Aish  bun
Aish  ink
Colin bun
Colin handsanitize
Colin paper

df2:
product added-product 
bun     butter
bun     jam
ink     cloth
ink     bib
paper   pen
doll    barbie

预期输出:

Name    added-product
Gopu    butter
Gopu    jam
Gopu    cloth
Gopu    bib
Aish    barbie
Aish    butter
Aish    jam
Aish    cloth
Aish    bib
Colin    butter
Colin    jam
Colin    pen

谢谢。

1 个答案:

答案 0 :(得分:1)

dfnew=df1.join(df2,(df1.product==df2.product),"cross").select('name','added-product').orderBy('name')

dfnew.show()
+-----+-------------+
| name|added-product|
+-----+-------------+
| Aish|       butter|
| Aish|          jam|
| Aish|        cloth|
| Aish|          bib|
| Aish|       barbie|
|Colin|          jam|
|Colin|          pen|
|Colin|       butter|
| Gopu|       butter|
| Gopu|        cloth|
| Gopu|          jam|
| Gopu|          bib|
+-----+-------------+