【发布时间】:2019-12-11 21:10:33
【问题描述】:
我有一个复杂的 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)
)
我想生成一个新的 DF,其中 MapType 的字段 data.value 设置为 null,但由于这是数组的一个元素,我无法弄清楚如何。我认为它类似于:
df.withColumn("data.values", functions.array(functions.lit(null)))
但这最终会创建一个data.values 的新列,并且不会修改数据数组的values 元素。
【问题讨论】:
标签: scala apache-spark apache-spark-sql spark-dataframe