开发者社区> 问答> 正文

Hive/Impala 作业读取 SparkSQL 导入的 Parquet 表报错

Hive/Impala 作业读取 SparkSQL 导入的 Parquet 表报错(表包含 Decimal 格式的列):Failed with exception java.io.IOException:org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file hdfs://…/…/part-00000-xxx.snappy.parquet

展开
收起
开源大数据EMR 2019-04-26 15:44:45 4648 0
1 条回答
写回答
取消 提交回答
  • 由于 Hive 和 SparkSQL 在 Decimal 类型上使用了不同的转换方式写入 Parquet,导致 Hive 无法正确读取 SparkSQL 所导入的数据。对于已有的使用 SparkSQL 导入的数据,如果有被 Hive/Impala 使用的需求,建议加上 spark.sql.parquet.writeLegacyFormat=true,重新导入数据。

    2019-07-17 23:34:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Comparison of Spark SQL with Hive 立即下载
Hive Bucketing in Apache Spark 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载