Wie konvertieren Sie einen SQLContext -Datenframe in RDD von Vektoren in Python?
-
16-10-2019 - |
Frage
Ich habe einen SQLContext -Datenrahmen, der aus Pandas -Datenrahmen abgeleitet ist, der aus mehreren numerischen Spalten besteht. Ich möchte auftreten Multivariate statistische Analyse Verwendung der pyspark.mllib.stats Paket. Die Statistikfunktion erwartet eine RDD von Vektoren. Ich konnte diesen Datenrahmen nicht in RDD von Vektoren umwandeln. Gibt es eine Möglichkeit, den Datenrahmen zu konvertieren?
Code:
rdd = sqlCtx.createDataFrame(df_new)
summary = Statistics.colStats(rdd)
Ich bekomme df_new von
df_new = df.applymap(lambda s: dic.get(s) if s in dic else s) #df is a pandas dataframe
Ich bekomme einen Py4jjava -Fehler in der Zusammenfassungszeile. Das Problem ist mit dem Format von RDD.
Lösung
Die DataFrame Python -API enthält die RDD eines Datenrahmens, indem sie Folgendes aufruft:
df.rdd # you can save it, perform transformations of course, etc.
DF.RDD gibt den Inhalt als pysspark.rdd der Reihe zurück.
Sie können dann auf dieser RDD der Zeile kartieren, die jede Zeile in a verwandelt numpy
Vektor. Ich kann die Transformation nicht genauer sein, da ich nicht weiß, was Ihr Vektor mit den angegebenen Informationen repräsentiert.
Anmerkung 1: df
Ist die Variable unseren Datenrahmen definiert.
Anmerkung 2: Diese Funktion ist seit Spark 1.3 verfügbar