【问题标题】:How to save complex json or complex objects as Parquet in Spark?如何在 Spark 中将复杂的 json 或复杂对象保存为 Parquet?
【发布时间】:2017-09-09 03:34:46
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

  • 是的,可以使用 spark 将嵌套对象保存为镶木地板,您有一个数据示例和预期结果
  • @Mehrez 我不确定您所说的预期结果是什么意思?结果将是一个 Parquet 文件,该文件可以理解 Parquet 规范(定义和重复级别)支持的嵌套结构
  • 您的问题是不干净,您的代码中有异常,或者您正在寻找代码示例以将嵌套对象保存为镶木地板?

标签: json apache-spark parquet spark-avro


【解决方案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

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

【讨论】:

    猜你喜欢
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多