Presto因类型不匹配错误而失败

维西尔特金

我遇到了以下错误,花了几天的时间弄清楚为什么Presto无法读取某些特定表。只想分享将来会遇到相同错误的解决方案。

问题堆栈跟踪

org.jkiss.dbeaver.model.exec.DBCException: SQL Error [16777224]: Query failed (#20200212_074009_00007_z9eqz): The column event_timestamp is declared as type timestamp, but the Parquet file declares the column as type BINARY
        at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCResultSetImpl.nextRow(JDBCResultSetImpl.java:179)
        at org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTable.readData(JDBCTable.java:195)
        at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:110)
        at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:164)
        at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:108)
        at org.jkiss.dbeaver.ui.controls.resultset.ResultSetViewer$17.run(ResultSetViewer.java:3468)
        at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:103)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
    Caused by: java.sql.SQLException: Query failed (#20200212_074009_00007_z9eqz): The column event_timestamp is declared as type timestamp, but the Parquet file declares the column as type BINARY
        at com.facebook.presto.jdbc.PrestoResultSet.resultsException(PrestoResultSet.java:1840)
        at com.facebook.presto.jdbc.PrestoResultSet$ResultsPageIterator.computeNext(PrestoResultSet.java:1820)
        at com.facebook.presto.jdbc.PrestoResultSet$ResultsPageIterator.computeNext(PrestoResultSet.java:1759)
        at com.facebook.presto.jdbc.internal.guava.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)
        at com.facebook.presto.jdbc.internal.guava.collect.AbstractIterator.hasNext(AbstractIterator.java:136)
        at com.facebook.presto.jdbc.internal.guava.collect.TransformedIterator.hasNext(TransformedIterator.java:42)
        at com.facebook.presto.jdbc.internal.guava.collect.Iterators$ConcatenatedIterator.getTopMetaIterator(Iterators.java:1311)
        at com.facebook.presto.jdbc.internal.guava.collect.Iterators$ConcatenatedIterator.hasNext(Iterators.java:1327)
        at com.facebook.presto.jdbc.LengthLimitedIterator.hasNext(LengthLimitedIterator.java:42)
        at com.facebook.presto.jdbc.PrestoResultSet.next(PrestoResultSet.java:144)
        at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCResultSetImpl.next(JDBCResultSetImpl.java:268)
        at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCResultSetImpl.nextRow(JDBCResultSetImpl.java:176)
        ... 7 more
    Caused by: com.facebook.presto.spi.PrestoException: The column event_timestamp is declared as type timestamp, but the Parquet file declares the column as type BINARY
        at com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getParquetType(ParquetPageSourceFactory.java:301)
        at com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getColumnType(ParquetPageSourceFactory.java:404)
        at com.facebook.presto.hive.parquet.ParquetPageSourceFactory.lambda$createParquetPageSource$1(ParquetPageSourceFactory.java:185)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:546)
        at com.facebook.presto.hive.parquet.ParquetPageSourceFactory.createParquetPageSource(ParquetPageSourceFactory.java:189)
        at com.facebook.presto.hive.parquet.ParquetPageSourceFactory.createPageSource(ParquetPageSourceFactory.java:139)
        at com.facebook.presto.hive.HivePageSourceProvider.createHivePageSource(HivePageSourceProvider.java:273)
        at com.facebook.presto.hive.HivePageSourceProvider.createPageSource(HivePageSourceProvider.java:120)
        at com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSourceProvider.createPageSource(ClassLoaderSafeConnectorPageSourceProvider.java:51)
        at com.facebook.presto.split.PageSourceManager.createPageSource(PageSourceManager.java:58)
        at com.facebook.presto.operator.TableScanOperator.getOutput(TableScanOperator.java:248)
        at com.facebook.presto.operator.Driver.processInternal(Driver.java:379)
        at com.facebook.presto.operator.Driver.lambda$processFor$8(Driver.java:283)
        at com.facebook.presto.operator.Driver.tryWithLock(Driver.java:675)
        at com.facebook.presto.operator.Driver.processFor(Driver.java:276)
        at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:1077)
        at com.facebook.presto.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:162)
        at com.facebook.presto.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:483)
        at com.facebook.presto.$gen.Presto_0_228_bcf44e4____20200212_073601_1.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

(由于stackoverflow大部分都是代码,因此不允许我发送此消息。我需要添加一些lorem ipsum语句)

生命的执着者,生命将永远是谷,低头。流量很大,但制造仍然很困难。

维西尔特金

1-原因

当实木复合地板的列顺序与创建语句顺序不匹配时,Presto将失败。当镶木地板文件在表中不包含某些列时,有时也会发生此错误。

2-解决方案

hive.properties文件中添加以下选项并重新启动Presto:

hive.parquet.use-column-names=true

另请参见Presto问题use-column-names默认情况下处于打开状态

希望对将来的人有所帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么三元运算符会因类型不匹配错误而失败?

来自分类Dev

为什么三元运算符会因类型不匹配错误而失败?

来自分类Dev

为什么对Deref :: deref的结果进行断言会因类型不匹配而失败?

来自分类Dev

Scala reduceList因类型不匹配而需要java.io.Serializable失败

来自分类Dev

类型推断失败。预期类型不匹配

来自分类Dev

boto initial_multipart_upload 因签名不匹配而失败

来自分类Dev

错误类型与replaceitemvalue不匹配

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

VBA错误:类型不匹配

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

错误类型与replaceitemvalue不匹配

来自分类Dev

类型不匹配错误#13

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

Scala 错误:类型不匹配

来自分类Dev

sqlx安装由于类型不匹配而失败

来自分类Dev

连接字符串和整数失败,出现“类型不匹配”错误

来自分类Dev

运行错误:属性验证失败:[属性{/ Targets / 0 / Values}的值与类型{Array}不匹配]

来自分类Dev

资源编译失败错误:标签不匹配

来自分类Dev

流anyMatch与“不兼容类型的”失败的错误

来自分类Dev

Scala中奇怪的类型不匹配错误

来自分类Dev

绑定不匹配错误:类型无效

来自分类Dev

MS Excel VBA类型不匹配错误

来自分类Dev

使用recover()时,类型不匹配错误

来自分类Dev

使用“ AdvanceFilter”输入类型不匹配错误

来自分类Dev

为什么类型不匹配错误?

来自分类Dev

在vbScript中获取类型不匹配错误

来自分类Dev

F#中的类型不匹配错误

来自分类Dev

Flink:PageRank类型不匹配错误

来自分类Dev

VBA Excel 2016:类型不匹配错误

Related 相关文章

热门标签

归档