我有一个复杂的 DataFrame 结构,并且想轻松地将列清空。我创建了隐式类,可以连接功能并轻松处理 2D DataFrame 结构,但是一旦 DataFrame 使用 ArrayType 或 MapType 变得更加复杂,我就没有太多运气了。例如:
我的架构定义为:
StructType(
StructField(name,StringType,true),
StructField(data,ArrayType(
StructType(
StructField(name,StringType,true),
StructField(values,
MapType(StringType,StringType,true),
true)
),
true
),
true)
)
我想生成一个具有该字段的新 DFdata.value
MapType 设置为 null,但由于这是数组的元素,我无法弄清楚如何设置。我认为它会类似于:
df.withColumn("data.values", functions.array(functions.lit(null)))
但这最终会创建一个新的列data.values
并且不修改values
数据数组的元素。