Ich möchte Array[org.apache.spark.sql.Row]
in ein DataFrame
konvertieren. Kann mir jemand einen besseren Weg vorschlagen?Array [Zeile] in Datenrahmen in Spark/Scala konvertieren
Ich habe versucht, es zuerst in RDD
umzuwandeln und dann versuchte, es in Dataframe
umzuwandeln, aber wenn ich irgendeine Operation auf der DataFrame
führe, werden Ausnahmen gezeigt.
val arrayOfRows = myDataFrame.collect().map(t => myfun(t))
val distDataRDD = sc.parallelize(arrayOfRows)
val newDataframe = sqlContext.createDataFrame(distDataRDD,myschema)
Hier myfun()
ist eine Funktion, die Row (org.apache.spark.sql.Row)
zurückgibt. Der Inhalt im Array ist korrekt und ich kann es ohne Probleme ausdrucken.
Aber als ich versuchte, die Datensätze in der zu zählen, gab es mir die Zählung sowie eine Warnung, dass eine der Bühne eine Aufgabe von sehr großer Größe enthält. Ich denke, ich mache etwas falsch. Bitte helfen Sie.
Ich erhalte diesen Fehler, wenn ich die Reihenfolge ** org.apache.spark ändere .SparkException: Task nicht serialisierbar ** – rvp
ArrayofRows ist eigentlich vom Typ DataFrame, so dass keine Zeilen 2 und 3 benötigt werden (sc.parallelize akzeptiert RDDs und nicht DataFrames, was der Grund für die neue Ausnahme ist) –
Ich bekomme den Fehler als sobald ich die erste Zeile 'val arrayOfRows = myD eingeben ataFrame.collect(). map (t => myfun (t)) ' – rvp