2017-07-06 1 views
0

Ich versuche, ein PipelinedRDD in Pyspark in einen Datenrahmen zu konvertieren. Dies ist der Code-Schnipsel:PipelinedRDD in Datenframe konvertieren

newRDD = rdd.map(lambda row: Row(row.__fields__ + ["tag"])(row + (tagScripts(row),))) df = newRDD.toDF()

Wenn ich den Code allerdings laufen, erhalte ich diese Fehlermeldung:

'list' object has no attribute 'encode'

ich mehrere andere Kombinationen ausprobiert habe, wie es zu einer Umwandlung Pandas Datenrahmen mit:

newRDD = rdd.map(lambda row: Row(row.__fields__ + ["tag"])(row + (tagScripts(row),))) df = newRDD.toPandas()

Aber dann habe ich en d bis diese Fehler zu erhalten:

AttributeError: 'PipelinedRDD' object has no attribute 'toPandas'

Jede Hilfe wäre sehr geschätzt. Vielen Dank für Ihre Zeit.

Antwort

0

rdd.toDF() oder rdd.toPandas() wird nur für SparkSession verwendet.

Code zu beheben, versuchen Sie unter:

spark = SparkSession.builder.getOrCreate() 

rdd = spark.sparkContext.textFile() 
newRDD = rdd.map(...) 
df = newRDD.toDF() or newRDD.toPandas() 
+0

SparkSession Spark 1.6 nicht verfügbar ist. SparkSession wurde nur in Spark 2.0 verfügbar. Ich kann nicht auf Spark 2.0 upgraden –

Verwandte Themen