2017-04-13 100 views
1

我是新来的火花,我试图找出是否有一种方法将复杂的对象(嵌套)或复杂jsons保存为实木复合地板在星火。我知道风筝SDK,但我知道它使用Map/Reduce。如何复杂JSON或复杂的对象保存为实木复合地板在星火?

我环顾四周,但我无法找到一个解决方案。

感谢您的帮助。

+0

是的,它可以保存嵌套的对象与火花镶木地板,你有数据的例子和预期的结果 – Mehrez

+0

@Mehrez我不知道你期望的结果是什么意思?其结果将是一个理解嵌套结构由地板规格(定义和重复级) – IceMan

+0

您的问题它不是干净支持的平面文件,你必须在你的代码的异常,或者你找一个代码示例嵌套对象保存为镶木地板? – Mehrez

回答

1
case class Address(city:String, block:String); 
case class Person(name:String,age:String, address:Address); 
val people = sc.parallelize(List(Person("a", "b", Address("a", "b")), Person("c", "d", Address("c", "d")))); 

val df = sqlContext.createDataFrame(people); 
df.write.mode("overwrite").parquet("/tmp/people.parquet") 

这个答案对我有所帮助。 Spark SQL: Nested classes to parquet error

但很难找到,所以我在这里回答了我自己的问题。希望这可以帮助别人寻找一个例子。