小编N.M*_*tal的帖子

使用多列作为密钥存储在Apache Spark中的数组中,连接两个Dataframe

如何使用多列作为键来计算两个Dataframe的连接?例如DF1,DF2是两个dataFrame.

这是我们计算连接的方式,

JoinDF = DF1.join(DF2, DF1("column1") === DF2("column11") && DF1("column2") === DF2("column22"), "outer") 
Run Code Online (Sandbox Code Playgroud)

但我的问题是如果它们存储在如下数组中,如何访问多列:

DF1KeyArray=Array{column1,column2}
DF2KeyArray=Array{column11,column22}
Run Code Online (Sandbox Code Playgroud)

那么用这种方法计算连接是不可能的

JoinDF = DF1.join(DF2, DF1(DF1KeyArray)=== DF2(DF2KeyArray), "outer")
Run Code Online (Sandbox Code Playgroud)

在这种情况下错误是:

<console>:128: error: type mismatch;
found   : Array[String]
required: String
Run Code Online (Sandbox Code Playgroud)

有没有办法访问多个列作为存储在数组中的键来计算连接?

scala join dataframe apache-spark apache-spark-sql

0
推荐指数
1
解决办法
5684
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

dataframe ×1

join ×1

scala ×1