Я работаю с фреймом данных. Df выглядит так:
root
|-- array(data1, data2, data3, data4): array (nullable = false)
| |-- element: array (containsNull = true)
| | |-- element: struct (containsNull = true)
| | | |-- k: struct (nullable = false)
| | | | |-- v: string (nullable = true)
| | | | |-- t: string (nullable = false)
| | | |-- resourcename: string (nullable = true)
| | | |-- criticity: string (nullable = true)
| | | |-- v: string (nullable = true)
| | | |-- vn: double (nullable = true)
, как описано в df.show () в столбце «Тип данных» Массив содержит четыре массива «data1», «data2», «data3 "," data4 "имеют ту же схему и тип данных, я получаю этот фрейм данных после
df.withcolumn("Column1",array(col("data1"),col("data2")
,col("data3"),col("data4"))
Я хочу получить новый фрейм данных, который содержит все элементы" data1 "," data2 "," data3"и" data4 "в одном массиве.новая схема должна быть:
|-- data: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- criticity: string (nullable = true)
| | |-- k: struct (nullable = true)
| | | |-- t: string (nullable = true)
| | | |-- v: string (nullable = true)
| | |-- resourcename: string (nullable = true)
| | |-- v: string (nullable = true)
| | |-- vn: double (nullable = true)