У меня есть DataFrame, который имеет несколько столбцов, некоторые из которых являются структурами. Что-то вроде этого
root
|-- foo: struct (nullable = true)
| |-- bar: string (nullable = true)
| |-- baz: string (nullable = true)
|-- abc: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- def: struct (nullable = true)
| | | |-- a: string (nullable = true)
| | | |-- b: integer (nullable = true)
| | | |-- c: string (nullable = true)
Я хочу применить UserDefinedFunction
в столбце baz
, чтобы заменить baz
на функцию baz
, но я не могу понять, как это сделать. Вот пример желаемого вывода (обратите внимание, что baz
теперь int
)
root
|-- foo: struct (nullable = true)
| |-- bar: string (nullable = true)
| |-- baz: int (nullable = true)
|-- abc: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- def: struct (nullable = true)
| | | |-- a: string (nullable = true)
| | | |-- b: integer (nullable = true)
| | | |-- c: string (nullable = true)
Похоже, что DataFrame.withColumn
работает только на столбцах верхнего уровня, но не на вложенных столбцах. Я использую Scala для этой проблемы.
Может кто-нибудь помочь мне с этим?
Спасибо