2017-02-18 31 views
3

当试图将spark 1.6.X parquet文件加载到spark 2.X中时,我看到很多WARN级别语句。警告试图将Spark 1.6.X Parquet读入Spark 2.X

16/08/11 12:18:51 WARN CorruptStatistics: Ignoring statistics because created_by could not be parsed (see PARQUET-251): parquet-mr version 1.6.0 
    org.apache.parquet.VersionParser$VersionParseException: Could not parse created_by: parquet-mr version 1.6.0 using format: (.+) version ((.*))?\(build ?(.*)\) 
    at org.apache.parquet.VersionParser.parse(VersionParser.java:112) 
    at org.apache.parquet.CorruptStatistics.shouldIgnoreStatistics(CorruptStatistics.java:60) 
    at org.apache.parquet.format.converter.ParquetMetadataConverter.fromParquetStatistics(ParquetMetadataConverter.java:263) 
    at org.apache.parquet.format.converter.ParquetMetadataConverter.fromParquetMetadata(ParquetMetadataConverter.java:567) 
    at org.apache.parquet.format.converter.ParquetMetadataConverter.readParquetMetadata(ParquetMetadataConverter.java:544) 
    at org.apache.parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:431) 
    at org.apache.parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:386) 
    at org.apache.spark.sql.execution.datasources.parquet.SpecificParquetRecordReaderBase.initialize(SpecificParquetRecordReaderBase.java:107) 
    at org.apache.spark.sql.execution.datasources.parquet.VectorizedParquetRecordReader.initialize(VectorizedParquetRecordReader.java:109) 
    at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat$$anonfun$buildReader$1.apply(ParquetFileFormat.scala:369) 
    at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat$$anonfun$buildReader$1.apply(ParquetFileFormat.scala:343) 
    at [rest of stacktrace omitted] 

我正在运行2.1.0版本,并且有很多这些警告。有没有办法 - 将日志记录级别更改为ERROR - 来抑制这些?

看来这些是修复后的结果 - 但警告可能尚未删除。下面是从JIRA一些细节:

https://issues.apache.org/jira/browse/SPARK-17993

我已经建立了代码的PR,它的确成功读取 数据。我曾尝试做df.count(),现在我与 警告这样一拥而上(他们打的时候老是没完没了地印在 终端):

日志记录级别设置为ERROR是一个不得已而为之方法:它吞咽我们依赖的标准监控信息。有没有人找到解决这个问题的方法?

回答

4

暂且 - 即直至/除非这个火花/拼花错误固定 - I将被加入以下的log4j.properties

log4j.logger.org.apache.parquet=ERROR 

的位置是:

  • 时针对外部火花服务器运行:$SPARK_HOME/conf/log4j.properties

  • 当在本地内部运行Intellij(或其他IDE)时:src/main/resources/log4j.properties

+0

您能否提供更多详细信息,您将在哪里更新以下行? log4j.logger.org.apache.parquet =错误,即在Hive中log4j.properties? – Jay

+0

@Jay。对不起,我直到现在才注意到你的评论。更新了我对该信息的回答。 – javadba