Transposición del dataframe con pyspark en Apache Spark

Tengo un df dataframe que tiene la siguiente estructura:

 +-----+-----+-----+-------+ | s |col_1|col_2|col_...| +-----+-------------------+ | f1 | 0.0| 0.6| ... | | f2 | 0.6| 0.7| ... | | f3 | 0.5| 0.9| ... | | ...| ...| ...| ... | 

Y quiero calcular la transposición de este dataframe para que se vea como

 +-------+-----+-----+-------+------+ | s | f1 | f2 | f3 | ...| +-------+-------------------+------+ |col_1 | 0.0| 0.6| 0.5 | ...| |col_2 | 0.6| 0.7| 0.9 | ...| |col_...| ...| ...| ... | ...| 

Até estas dos soluciones pero devuelve que el dataframe no tiene el método utilizado especificado:

Método 1:

  for x in df.columns: df = df.pivot(x) 

método 2:

     df = sc.parallelize([ (k,) + tuple(v[0:]) for k,v in df.items()]).toDF() 

    Cómo puedo arreglar esto.

    Si los datos son lo suficientemente pequeños para ser transpuestos (no pivotados con agregación), simplemente puede convertirlos a Pandas DataFrame :

     df = sc.parallelize([ ("f1", 0.0, 0.6, 0.5), ("f2", 0.6, 0.7, 0.9)]).toDF(["s", "col_1", "col_2", "col_3"]) df.toPandas().set_index("s").transpose() s f1 f2 col_1 0.0 0.6 col_2 0.6 0.7 col_3 0.5 0.9 

    Si es demasiado grande para esto, Spark no ayudará. Spark DataFrame distribuye los datos por fila (aunque utiliza almacenamiento en columnas localmente), por lo tanto, el tamaño de las filas individuales se limita a la memoria local.