如何在Spark中将复杂的json或复杂对象保存为Parquet?

时间:2017-04-13 06:29:07

标签: json apache-spark parquet spark-avro

我是Spark的新手,我正在试图弄清楚是否有一种方法可以将复杂对象(嵌套)或复杂的jsons保存为Spark中的Parquet。我知道Kite SDK,但我知道它使用Map / Reduce。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分: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")

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

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