开发者社区> 问答> 正文

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

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

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

如果没有(来自df2的)added_product项,则该项不必出现在输出中。对于(例如)“ 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

谢谢。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 09:45:20 449 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|
    +-----+-------------+
    

    回答来源:stackoverflow

    2020-03-24 09:45:27
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
LEARNINGS USING SPARK STREAMING & DATAFRAMES FOR WALMART SEARCH 立即下载
《Apache Flink-重新定义计算》PDF下载 立即下载
Adopting Dataframes and Parque 立即下载