在多个字段上连接两个Spark Dataframe

xvw2m8pv  于 2023-02-19  发布在  Apache
关注(0)|答案(4)|浏览(212)

我尝试在Spark中的多个字段上连接两个 Dataframe 。我尝试了以下操作:

df1.
   join(df2, df1$col1 == df2$col2 && df1$col3 == df2$col4)

但这并不起作用(有一系列的错误,如果需要的话,我可以列出)。
有没有更好的方法来写这个?我需要在Spark中完成,而不是pySpark,等等。

gkn4icbw

gkn4icbw1#

这个在pyspark的程序对我也有效。希望这对你有帮助!

df1.join(df2, \
    (df1["col1"]==df2["col2"]) & \
    (df1["col3"]==df2["col4"]))
oxalkeyp

oxalkeyp2#

在pyspark中,我必须将wrap条件放入大括号中,因为操作优先级有问题。
也许你也有同样的问题:

df1.
   join(df2, (df1$col1 == df2$col2) && (df1$col3 == df2$col4))
vc6uscn9

vc6uscn93#

如果 Dataframe 为df1和df2,则需要执行以下操作

df1.join(df2, (df1("col1") === df2("col2")) && (df1("col3") === df2("col4")))

希望这有帮助!

ddhy6vgd

ddhy6vgd4#

以下是我的工作

result=(
        df1
        .join(
            df2,
            (df1.col1 == df2.col1) & 
            (df1.col2 == df2.col2) & 
            (df1.col3 == df2.col3),
            how="left"
        )

相关问题