2016-04-11 8 views
0

mit Funken Job Server Einstieg habe ich gelernt, dass Datenrahmen wie Spark flattening out dataframes werden abgeflacht werden kann, aber dies noch nicht https://github.com/spark-jobserver/spark-jobserver#job-result-serializationFunken Job Server serialzation Format

nicht erfüllt Wenn dies das Ergebnis, das ich von Funken erhalten, ist

Array([1364767200000,1.9517414004122625E15], [1380578400000,6.9480992806496976E16]) 

Wie könnte ich es zu einem passenden Format zuordnen? (nützliche Serialisierung) Wie könnte ich zusätzliche Felder hinzufügen?

Der Versuch, mit einem Array wie: Array([1,2], [3,4]) zu spielen, führt nur zu einem Fehler.

Derzeit erhalte ich die folgende Serialisierung basierend auf Spark flattening out dataframes:

"result": "Map(1364767200000 -> 1.9517414004122625E15, 1380578400000 -> 6.9480992806496976E16)" 

, die offensichtlich nicht "analysiert" durch die Jobs-erver.

Soweit ich es verstehe, die verschachtelten Arrays (von collect) kann nicht ordnungsgemäß serialisiert werden. Diese Karte sollte jedoch serialisierbar sein. Was ist falsch?

bearbeiten

Nur wenn ich die Json Codierung scheint zu funktionieren eine richtig getippt Liste zurückzukehren.

case class Student(name: String, age: Int) 
List(Student("Torcuato", 27), Student("Rosalinda", 34)) 

Das Ergebnis ist: "result": [["Torcuato", 27], ["Rosalinda", 34]]. Bereits für

val dataFrame: DataFrame = sql.createDataFrame(sql.sparkContext.parallelize(List(Student("Torcuato", 27), Student("Rosalinda", 34)))) 
    dataFrame.collect 

ich "result": ["[Torcuato,27]", "[Rosalinda,34]"] die einige seltsame Art von Json ist.

Soweit ich das Problem verstehe, würde ich alle meine Ergebnisse in eine benutzerdefinierte Klasse analysieren müssen. Wie würde ich das erreichen?

Antwort

Verwandte Themen