Dataframe transpose mit pyspark in Apache Spark
Ich habe einen dataframe df
haben folgende Struktur:
+-----+-----+-----+-------+
| s |col_1|col_2|col_...|
+-----+-----+-----+-------+
| f1 | 0.0| 0.6| ... |
| f2 | 0.6| 0.7| ... |
| f3 | 0.5| 0.9| ... |
| ...| ...| ...| ... |
Und ich will berechnen Sie die transponierte dieser dataframe so wird es Aussehen
+-------+-----+-----+-------+------+
| s | f1 | f2 | f3 | ...|
+-------+-----+-----+-------+------+
|col_1 | 0.0| 0.6| 0.5 | ...|
|col_2 | 0.6| 0.7| 0.9 | ...|
|col_...| ...| ...| ... | ...|
Band ich diese zwei Lösungen, aber es gibt, dataframe hat nicht die angegebene Methode verwendet:
Methode 1:
for x in df.columns:
df = df.pivot(x)
Methode 2:
df = sc.parallelize([ (k,) + tuple(v[0:]) for k,v in df.items()]).toDF()
wie kann ich dieses Problem beheben.
- Sie konnten einen Blick hier stackoverflow.com/questions/36215755/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Daten klein genug sind, um umgesetzt werden (nicht geschwenkt mit aggregation) können Sie einfach konvertieren Sie es in Pandas
DataFrame
:Wenn es zu groß für diese Funke wird nicht helfen. Spark
DataFrame
verteilt die Daten von Zeile (obwohl lokal verwendet columnar storage), also die Größe der einzelnen Zeilen ist beschränkt auf den lokalen Speicher.spark.createDataFrame(result)