2016-04-11 24 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。

据我了解的问题,我需要解析我的结果到一个自定义的类。我将如何实现这一目标?

回答