Mam złożoną strukturę DataFrame i chciałbym łatwo zerować kolumnę. Stworzyłem niejawne klasy, które łączą funkcje i łatwo adresują struktury 2D DataFrame, ale gdy DataFrame staje się bardziej skomplikowana dzięki ArrayType lub MapType, nie miałem szczęścia. Na przykład:Jak zmodyfikować ramkę danych Spark ze złożoną strukturą zagnieżdżoną?
Mam schemat zdefiniowany jako:
StructType(
StructField(name,StringType,true),
StructField(data,ArrayType(
StructType(
StructField(name,StringType,true),
StructField(values,
MapType(StringType,StringType,true),
true)
),
true
),
true)
)
chciałbym produkować nowy DF, który ma pole data.value
z MapType ustawiony na NULL, ale jak to jest elementem tablicy I nie byłem w stanie wymyślić jak. Myślę, że będzie podobny do:
df.withColumn("data.values", functions.array(functions.lit(null)))
ale ostatecznie tworzy nową kolumnę data.values
i nie modyfikować element values
tablicy danych.