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

How to save complex json or complex objects as Parquet in Spark?

我是 Spark 的新手,我想知道是否有办法在 Spark 中将复杂对象(嵌套)或复杂的 json 保存为 Parquet。我知道 Kite SDK,但我知道它使用 Map/Reduce。

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

感谢您的帮助。

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 的回答很有帮助。

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