У меня есть следующие Sequence и DataFrames:
df1.select("link1", "link2").show
+-----+-----+
|link1|link2|
+-----+-----+
| 1| 1|
| 2| 1|
| 2| 1|
| 3| 1|
| 5| 2|
+-----+-----+
df2.select("link1_2", "link2_2").show
+-------+-------+
|link1_2|link2_2|
+-------+-------+
| 2| 1|
| 2| 4|
| 4| 1|
| 5| 2|
| 3| 4|
+-------+-------+
val col_names = Seq("link1", "link2")
Я хочу создать следующую ссылку
df1.join(df2, 'link1 === 'link1_2 && 'link2 === 'link1_2)
без жесткого кодирования столбцов связывания. Мне в основном нужен способ сделать следующее преобразование:
Seq("str1", "str2", ...) -> 'str1 === 'str1_2 && 'str2 === 'str1_2 && ...
Я пробовал следующий подход, который, кажется, не работает:
df1.join(df2, col_names map (str: String => col(str) === col(str + "_2")).foldLeft(true)(_ && _))
Кто-нибудь знает, как написатьвыше трансформации?