database - 如何将 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 数据?
解决方案
这可以使用 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"
}
}
推荐阅读
- google-cloud-platform - GPU配额更新需要多少时间?
- c++ - 带有静态库的 SFML 编译错误。C++
- git - Git rebase 自动从分支中删除文件
- mysql - mysql窗口函数带case
- reporting-services - SSRS 报告将行排列到列
- html - 打开 .html 文件时 SVG 不显示
- git - 如何使用 git cherry-pick 跳过不精确的重命名检测
- sql - SQL中如何根据查询结果进行子查询
- python - 如何强制函数输出为布尔值
- amazon-web-services - 使用 Bitbucket Pipelines 使用 AWS CodeDeploy 部署到多个 AWS 区域