Como adicionar uma coluna à estrutura explodida no Spark?
Digamos que tenho os seguintes dados:
{"id":1, "payload":[{"foo":1, "lol":2},{"foo":2, "lol":2}]}
Gostaria de explodir a carga útil e adicionar uma coluna a ela, assim:
df = df.select('id', F.explode('payload').alias('data'))
df = df.withColumn('data.bar', F.col('data.foo') * 2)
No entanto, isso resulta em um quadro de dados com três colunas:
id
data
data.bar
Eu esperava odata.bar
fazer parte dodata
struct ...
Como posso adicionar uma coluna à estrutura explodida, em vez de adicionar uma coluna de nível superior?