Page 1 of 1

Benennen Sie verschachtelte Feld in Spark DataFrame um

Posted: 03 Apr 2025, 02:05
by Anonymous
mit einem DataFrame DF < /code> in Spark: < /p>

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 weiß, dass das Einstellen eines privaten Attributs keine gute Praxis ist, aber ich weiß nicht, wie ich das Schema für df

Ich denke, ich bin auf einem richtigen Track, aber df.printschema () zeigt den alten Namen für Array_Field. True