首页 > 解决方案 > 如何将 JSON 文档转换为 Parquet/ORC 文件

问题描述

是否可以将 JSON 转换为 Parquet/ORC 格式?

我已在 HIVE 中按照以下步骤将 CSV/TSV 数据转换为 Parquet

1: Create an external HIVE Table with TSV data source and TSV serde.
2: Create a normal HIVE table with Parquet serde.
3: INSERT INTO ParquetTable SELECT * FROM ParquetTable.

所以问题是,有没有类似的方法可以将 JSON 转换为 Parquet,还是需要先展平 JSON 数据?

标签: databaseparquetorc

解决方案


这可以使用 Apache Spark 库轻松完成。

先决条件:数据应该是单行 JSON。由于 Spark DataSource 库不支持多行 JSON。

下面是使用 Spark 2.x 的示例代码:

 val spark = SparkSession.builder()
  .master("local")
  .getOrCreate()

val inpDF = spark.read.json("<inputPath>")
// Auto schema Inference 
inpDF.printSchema()
inpDF.write.parquet("<outputPath>")

单行 JSON :{"Device":{"Brand":"Apple","Model":"Iphone11Pro"}}

多行 JSON :{ "Device": { "Brand":"Apple", "Model":"Iphone11Pro" } }


推荐阅读