¿Cómo agregar una columna a una estructura explotada en Spark?

Digamos que tengo los siguientes datos:

{"id":1, "payload":[{"foo":1, "lol":2},{"foo":2, "lol":2}]}

Me gustaría explotar la carga útil y agregarle una columna, como esta:

df = df.select('id', F.explode('payload').alias('data'))
df = df.withColumn('data.bar', F.col('data.foo') * 2)

Sin embargo, esto da como resultado un marco de datos con tres columnas:

iddatadata.bar

Esperaba eldata.bar ser parte de ladata estructura ...

¿Cómo puedo agregar una columna a la estructura explotada, en lugar de agregar una columna de nivel superior?

Respuestas a la pregunta(1)

Su respuesta a la pregunta