Я хочу объединить несколько столбцов ArrayType [StringType] в spark, чтобы создать один ArrayType [StringType]. Для объединения двух столбцов я нашел солютон здесь:
Объединение двух столбцов SQL типа Spark типа Array [string] в новый столбец Array [string]
Но как мне объединиться, если я не знаю количество столбцов во время компиляции? Во время выполнения я буду знать имена всех столбцов, которые нужно объединить.
Один из вариантов - использовать UDF, определенный в приведенном выше вопросе stackoverflow, чтобы добавить два столбца несколько раз в цикле. Но это включает в себя несколько чтений на весь фрейм данных. Есть ли способ сделать это за один раз?
+------+------+---------+
| col1 | col2 | combined|
+------+------+---------+
| [a,b]| [i,j]|[a,b,i,j]|
| [c,d]| [k,l]|[c,d,k,l]|
| [e,f]| [m,n]|[e,f,m,n]|
| [g,h]| [o,p]|[g,h,o,p]|
+------+----+-----------+