【发布时间】:2017-09-15 10:13:02
【问题描述】:
假设我有以下数据:
{"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)
但是这会导致数据框包含三列:
iddatadata.bar
我希望 data.bar 成为 data 结构的一部分...
如何在展开的结构中添加列,而不是添加顶级列?
【问题讨论】:
-
您必须重建架构,使用
select,或使用udf来修改数据——这里几乎涵盖了所有这些选项:stackoverflow.com/questions/31615657/…
标签: apache-spark dataframe pyspark