1
说我有以下数据:如何将列添加到Spark中的爆炸结构?
{"id":1, "payload":[{"foo":1, "lol":2},{"foo":2, "lol":2}]}
我想爆炸载荷和列添加到它,就像这样:
df = df.select('id', F.explode('payload').alias('data'))
df = df.withColumn('data.bar', F.col('data.foo') * 2)
然而,这导致与三列的数据帧:
id
data
data.bar
我预计data.bar
是data
结构的一部分......
我怎样才能添加一列分解结构,而不是添加顶层列?
您必须重建模式,使用'select'或使用'udf'来修改数据 - 几乎所有这些选项都包含在这里:https://stackoverflow.com/questions/31615657/ how to add-a-new-struct-column-to-a-dataframe –
[如何向DataFrame添加新的Struct列]可能的副本(https://stackoverflow.com/questions/31615657/how-添加新的结构列到数据框) –