Tôi có một DataFrame có nhiều cột trong đó một số trong số đó là cấu trúc. Một cái gì đó như thế nàySpark SQL lồng vớiColumn
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)
Tôi muốn áp dụng một UserDefinedFunction
trên cột baz
để thay thế baz
với một chức năng của baz
, nhưng tôi không thể tìm ra cách để làm điều đó. Dưới đây là một ví dụ về đầu ra mong muốn (lưu ý rằng baz
bây giờ là một int
là)
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)
Dường như DataFrame.withColumn
chỉ hoạt động trên các cột cấp cao nhất nhưng không phải trên cột lồng nhau. Tôi đang sử dụng Scala cho vấn đề này.
Ai đó có thể giúp tôi với điều này không?
Cảm ơn
Tôi nghĩ rằng điều này đang đi đúng hướng, nhưng lý tưởng tôi muốn làm điều này mà không liệt kê tất cả các tên cột trong vòng uct. – Jon
@Jon xem chỉnh sửa của tôi –
Điều này dường như hoạt động, nhưng tôi không thể thay thế tên của cột phụ một cách dễ dàng. – Jon