NAK3 NAK6
我有一个用例,其中我需要以查找方式连接两个表。我是如何做到这一点的?
表答:
type3您可以使用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|
//+----+-----------+