Динамический выбор нескольких столбцов при объединении разных Dataframe в Scala Spark
По приведенной выше ссылке я смог заставить работать выражение объединения, но что, если имена столбцов отличаются, мы не можем использовать Seq (столбцы) и нам нужно динамически присоединиться к нему. Здесь left_ds и right_ds - это те кадры данных, к которым я хотел присоединиться.
Ниже я хочу объединить столбцы id = acc_id и "acc_no = number"
left_da => id, acc_no, name, ph
right_ds => acc_id, number, location
val joinKeys="id,acc_id|acc_no,number"
val joinKeyPair: Array[(String, String)] = joinKeys.split("\\|").map(_.split(",")).map(x => x(0).toUpperCase -> x(1).toUpperCase)
val joinExpr: Column = joinKeyPair.map { case (ltable_col, rtable_col) =>left_ds.col(ltable_col) === right_ds.col(rtable_col)}.reduce(_ and _)
left_ds.join(right_ds, joinExpr, "left_outer")
Выше было выражение соединения, которое я пробовал, но оно не работает. Есть ли способ добиться этого, если имена столбцов соединения отличаются без использования Seq. Поэтому, если количество ключей объединения увеличится, я все равно смогу заставить код работать динамически.