我想弄清楚如何连接两个数据帧,其中一个数据帧包含一个列表,该列表具有连接键。
例如:
- 一个数据框的格式为
(id: String, ..., ...)
- 另一个有
(... ,..., List[tmpObj])
tmpObj
的结构如下(id: String, value: int)
。
我的目标是通过在第二个数据帧的 tmpObj 列表中找到的 id 值将两个数据帧连接到第一个数据帧的 id。
有人知道如何解决这个问题吗?
最佳答案
使用explode
和join
id
上的第一个数据帧:
df2.withColumn("obj", explode($"list_obj")).
join(df1, $"obj.id" === $"id", "right")
关于scala - 如何将列作为要加入的键的集合加入数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49264767/