Transformar una columna y actualizar el DataFrame

Entonces, lo que estoy haciendo a continuación es soltar una columnaA a partir de unaDataFrame porque quiero aplicar una transformación (aquí solojson.loads una cadena JSON) y reemplace la columna anterior con la transformada. Después de la transformación, acabo de unir los dos marcos de datos resultantes.

df = df_data.drop('A').join(
    df_data[['ID', 'A']].rdd\
        .map(lambda x: (x.ID, json.loads(x.A)) 
             if x.A is not None else (x.ID, None))\
        .toDF()\
        .withColumnRenamed('_1', 'ID')\
        .withColumnRenamed('_2', 'A'),
    ['ID']
)

Lo que no me gusta de esto es, por supuesto, la sobrecarga a la que me enfrento porque tuve que hacerwithColumnRenamed operaciones

Con pandas Todos haría algo como esto:

pdf = pd.DataFrame([json.dumps([0]*np.random.randint(5,10)) for i in range(10)], columns=['A'])
pdf.A = pdf.A.map(lambda x: json.loads(x))
pdf

pero lo siguiente no funciona en pyspark:

df.A = df[['A']].rdd.map(lambda x: json.loads(x.A))

Entonces, ¿hay una manera más fácil de lo que estoy haciendo en mi primer código cortado?

Respuestas a la pregunta(2)

Su respuesta a la pregunta