Code: Select all
|-- array_field: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- a: string (nullable = true)
| | |-- b: long (nullable = true)
| | |-- c: long (nullable = true)
< /code>
Wie umbenannt ich das Feld array_field.a < /code> in array_field.a_renamed < /code>?.withColumnRenamed()< /code> funktioniert nicht mit verschachtelten Feldern, also habe ich diese hacky und unsichere Methode ausprobiert: < /p>
# First alter the schema:
schema = df.schema
schema['array_field'].dataType.elementType['a'].name = 'a_renamed'
ind = schema['array_field'].dataType.elementType.names.index('a')
schema['array_field'].dataType.elementType.names[ind] = 'a_renamed'
# Then set dataframe's schema with altered schema
df._schema = schema
Ich denke, ich bin auf einem richtigen Track, aber df.printschema () zeigt den alten Namen für Array_Field. True