开发者社区> 问答> 正文

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

开源大数据EMR 2019-04-26 15:44:45 203

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

分享到
取消 提交回答
全部回答(1)
  • 开源大数据EMR
    2019-07-17 23:34:21

    由于 Hive 和 SparkSQL 在 Decimal 类型上使用了不同的转换方式写入 Parquet,导致 Hive 无法正确读取 SparkSQL 所导入的数据。对于已有的使用 SparkSQL 导入的数据,如果有被 Hive/Impala 使用的需求,建议加上 spark.sql.parquet.writeLegacyFormat=true,重新导入数据。

    0 0