在Spark中连接两个数据帧



我有一个用例,其中我需要以查找方式连接两个表。我是如何做到这一点的?

表答:

type3NAK3NAK6

您可以使用array_contains然后groupby加入并收集data列列表:

val result = dfA.as("a")
.withColumn("keys", array(dfA.columns.map(col): _*))
.join(
dfB.as("b"),
array_contains(col("keys"), col("b.Key"))
).groupBy("a.Key")
.agg(
concat_ws(",", collect_list(col("data"))).as("data")
)
result.show
//+----+-----------+
//| Key|       data|
//+----+-----------+
//|ALK1|G1,G3,G4,G5|
//|ALK2|G2,G6,G7,G8|
//+----+-----------+

相关内容

  • 没有找到相关文章

最新更新