【发布时间】:2017-11-02 04:20:38
【问题描述】:
我有带有镶木地板数据的 Hive 外部表。这里没有使用压缩。我正在使用 spark 作业将数据(镶木地板文件)写入 HDFS 目录。但是当我尝试从表中选择数据时,我得到以下错误/警告并且没有出现输出。 我确信这是一个常见问题。请告诉我如何克服这个问题?
蜂巢 - 1.2.1000.2.5.0.0-1245 hdp - 2.5.0.0-1245 火花版本 1.6.2
2017 年 6 月 1 日下午 5:04:27 警告:org.apache.parquet.CorruptStatistics:忽略统计信息,因为无法解析 created_by(请参阅 PARQUET-251):parquet-mr 版本 1.6.0 org.apache.parquet.VersionParser$VersionParseException: 无法解析 created_by: parquet-mr version 1.6.0 using format: (.+) version ((.) )?(build ?(.)) 在 org.apache.parquet.VersionParser.parse(VersionParser.java:112) 在 org.apache.parquet.CorruptStatistics.shouldIgnoreStatistics(CorruptStatistics.java:60) 在 org.apache.parquet.format.converter.ParquetMetadataConverter.fromParquetStatistics(ParquetMetadataConverter.java:263)
似乎是因为 spark job 中使用的 parquet writer 版本和 Hive 中使用 read 的 parquet writer 版本不同,它们之间存在差距。在这里我们可以看到在 Hive 中用于读取的版本是 parquet-mr 版本 1.6.0
现在,如果有人能告诉我如何更改 spark 作业中使用的 parquet writer 版本或如何更改 Hive parquet reader 版本,我可以尝试解决这个问题。
【问题讨论】:
标签: hadoop apache-spark hive parquet