Scala 基于多列的Spark join 2数据帧

Scala 基于多列的Spark join 2数据帧,scala,dataframe,apache-spark,Scala,Dataframe,Apache Spark,我有两个数据帧df1和df2。我在映射中定义了这些数据帧的连接条件。但是,联接列名是不同的 我知道我可以这样做, val df3=df2.join(df1,df2(“col1”)df1(“col5”) 和&df2(“col2”)df1(“col6”) 和&df2(“col3”)df1(“col7”) 和&df2(“col4”)df1(“col8”), “左” ) 是否有一种方法可以使用map中的值动态创建连接条件。您可以使用 val df3=df2.join(df1,Seq(“col5”、“co

我有两个数据帧df1和df2。我在映射中定义了这些数据帧的连接条件。但是,联接列名是不同的

我知道我可以这样做,
val df3=df2.join(df1,df2(“col1”)df1(“col5”)
和&df2(“col2”)df1(“col6”)
和&df2(“col3”)df1(“col7”)
和&df2(“col4”)df1(“col8”),
“左”

是否有一种方法可以使用map中的值动态创建连接条件。

您可以使用

val df3=df2.join(df1,Seq(“col5”、“col6”、“col7”、“col8”)、“left”)
如果您以前从df2重命名列,因为列必须位于两侧。

您可以使用

val df3=df2.join(df1,Seq(“col5”、“col6”、“col7”、“col8”)、“left”)
如果您以前从df2重命名列,因为列必须位于两侧