У меня есть DataFrame, который имеет два столбца значений массива, как показано ниже
var ds = Seq((Array("a","b"),Array("1","2")),(Array("p","q"),Array("3","4")))
var df = ds.toDF("col1", "col2")
+------+------+
| col1| col2|
+------+------+
|[a, b]|[1, 2]|
|[p, q]|[3, 4]|
+------+------+
Я хочу преобразовать это в массив пар, как показано ниже
+------+------+---------------+
| col1| col2| col3|
+------+------+---------------+
|[a, b]|[1, 2]|[[a, 1],[b, 2]]|
|[p, q]|[3, 4]|[[p, 3],[q, 4]]|
+------+------+---------------+
Думаю, я могу используйте struct, а затем udf. Но я хотел знать, есть ли какой-нибудь встроенный метод более высокого порядка, чтобы сделать это эффективно.