我有一个复杂的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)
)
Run Code Online (Sandbox Code Playgroud)
我想生成一个新的DF,其data.valueMapType 字段设置为null,但由于这是一个数组元素,我无法弄清楚如何.我认为它类似于:
df.withColumn("data.values", functions.array(functions.lit(null)))
Run Code Online (Sandbox Code Playgroud)
但这最终会创建一个新列,data.values并且不会修改values数据数组的元素.