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:

iddatadata.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?

questionAnswers(1)

yourAnswerToTheQuestion