2016-04-11 2 views
0

начало работы с искровым jobserver я узнал, что кадры данных могут быть flattend как Spark flattening out dataframes, но это по-прежнему не выполняет https://github.com/spark-jobserver/spark-jobserver#job-result-serializationискрового jobserver формат serialzation

Если это результат я получаю от искры

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

Как я могу сопоставить его с подходящим форматом? (полезная сериализация) Как я могу добавить дополнительные поля?

Попытка играть с массивом наподобие: Array([1,2], [3,4]) приводит к ошибке.

В настоящее время я получаю сериализации, основанную на Spark flattening out dataframes:

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

, который, очевидно, не «разобранную» на работе-ERVER.

Насколько я понимаю, вложенные массивы (от collect) не могут быть правильно сериализованы. Однако эта карта должна быть сериализована. Что не так?

редактировать

Только если я вернусь правильно набранный список кодирования Json, кажется, работает.

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

Результат: "result": [["Torcuato", 27], ["Rosalinda", 34]]. Уже

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

я "result": ["[Torcuato,27]", "[Rosalinda,34]"], который какой-то странный вид Json.

Насколько я понимаю, мне нужно было бы разобрать весь мой результат в пользовательский класс. Как я могу это достичь?

ответ

0

Ответ заключается в том, что на данный момент, видимо, поддерживаются только Карты строк, этот Convert DataFrame to RDD[Map] in Scala приводит к чистой сериализации.