小编use*_*583的帖子

如何使用复杂的嵌套结构修改Spark Dataframe?

我有一个复杂的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数据数组的元素.

scala apache-spark apache-spark-sql spark-dataframe

6
推荐指数
1
解决办法
1697
查看次数