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.

War es hilfreich?

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: dfIst die Variable unseren Datenrahmen definiert.

Anmerkung 2: Diese Funktion ist seit Spark 1.3 verfügbar

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top