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

Presto因类型不匹配错误而失败,presto,Presto,我遇到了以下错误,并花了几天的时间来找出为什么Presto无法阅读一些特定的表。只是想和大家分享解决方案,谁将来也会面临同样的错误 问题跟踪 org.jkiss.dbeaver.model.exec.dbceexception:SQL错误[16777224]:查询失败(#20200212_074009_00007_z9eqz):列事件_时间戳声明为类型时间戳,但拼花文件将列声明为类型二进制 位于org.jkiss.dbeaver.model.impl.jdbc.exec.jdbcsresults

我遇到了以下错误,并花了几天的时间来找出为什么Presto无法阅读一些特定的表。只是想和大家分享解决方案,谁将来也会面临同样的错误

问题跟踪

org.jkiss.dbeaver.model.exec.dbceexception:SQL错误[16777224]:查询失败(#20200212_074009_00007_z9eqz):列事件_时间戳声明为类型时间戳,但拼花文件将列声明为类型二进制
位于org.jkiss.dbeaver.model.impl.jdbc.exec.jdbcsresultsetimpl.nextRow(jdbcsresultsetimpl.java:179)
位于org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTable.readData(JDBCTable.java:195)
位于org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:110)
位于org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:164)
位于org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:108)
位于org.jkiss.dbeaver.ui.controls.resultset.ResultSetViewer$17.run(ResultSetViewer.java:3468)
位于org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:103)
位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
原因:java.sql.SQLException:查询失败(#20200212_074009_00007_z9eqz):列事件_时间戳声明为类型时间戳,但拼花文件将列声明为类型二进制
在com.facebook.presto.jdbc.PrestoResultSet.resultexception上(PrestoResultSet.java:1840)
在com.facebook.presto.jdbc.PrestoResultSet$ResultsPageIterator.computeNext上(PrestoResultSet.java:1820)
在com.facebook.presto.jdbc.PrestoResultSet$ResultsPageIterator.computeNext(PrestoResultSet.java:1759)
在com.facebook.presto.jdbc.internal.guava.collect.AbstractIterator.tryToComputeNext上(AbstractIterator.java:141)
位于com.facebook.presto.jdbc.internal.guava.collect.AbstractIterator.hasNext(AbstractIterator.java:136)
位于com.facebook.presto.jdbc.internal.guava.collect.transformeditor.hasNext(transformeditor.java:42)
在com.facebook.presto.jdbc.internal.guava.collect.Iterators$ConcatenatedIterator.getTopMeta迭代器(Iterators.java:1311)上
在com.facebook.presto.jdbc.internal.guava.collect.Iterators$concatenateditor.hasNext(Iterators.java:1327)
在com.facebook.presto.jdbc.LengthLimitedIterator.hasNext(LengthLimitedIterator.java:42)
在com.facebook.presto.jdbc.PrestoResultSet.next上(PrestoResultSet.java:144)
位于org.jkiss.dbeaver.model.impl.jdbc.exec.jdbcrestsetimpl.next(jdbcrestsetimpl.java:268)
位于org.jkiss.dbeaver.model.impl.jdbc.exec.jdbcsresultsetimpl.nextRow(jdbcsresultsetimpl.java:176)
... 还有7个
原因:com.facebook.presto.spi.PrestoException:列事件\u时间戳声明为类型时间戳,但拼花文件将列声明为类型二进制
在com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getParquetType(ParquetPageSourceFactory.java:301)
位于com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getColumnType(ParquetPageSourceFactory.java:404)
在com.facebook.presto.hive.parquet.ParquetPageSourceFactory.lambda$createParquetPageSource$1(ParquetPageSourceFactory.java:185)
位于java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
位于java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
位于java.util.ArrayList$ArrayListSpliterator.ForEachLeving(ArrayList.java:1382)
位于java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
位于java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
位于java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
位于java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
位于java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:546)
位于com.facebook.presto.hive.parquet.ParquetPageSourceFactory.createParquetPageSource(ParquetPageSourceFactory.java:189)
在com.facebook.presto.hive.parquet.ParquetPageSourceFactory.createPageSource(ParquetPageSourceFactory.java:139)上
在com.facebook.presto.hive.HivePageSourceProvider.createHivePageSource(HivePageSourceProvider.java:273)
位于com.facebook.presto.hive.HivePageSourceProvider.createPageSource(HivePageSourceProvider.java:120)
在com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSourceProvider.createPageSource(ClassLoaderSafeConnectorPageSourceProvider.java:51)
在com.facebook.presto.split.PageSourceManager.createPageSource上(PageSourceManager.java:58)
在com.facebook.presto.operator.tablescanooperator.getOutput(tablescanooperator.java:248)
位于com.facebook.presto.operator.Driver.processInternal(Driver.java:379)
在com.facebook.presto.operator.Driver.lambda$processFor$8(Driver.java:283)
位于com.facebook.presto.operator.Driver.tryWithLock(Driver.java:675)
位于com.facebook.presto.operator.Driver.processFor(Driver.java:276)
位于com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:1077)
在com.facebook.presto.execution.executor.prioritydsplitrunner.process(prioritydsplitrunner.java:162)上
在com.facebook.presto.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:483)
在com.facebook.presto.$gen.presto_0_228_bcf44e4_____20200212_073601_1.run(未知来源)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
运行(Thread.java:748)
(因为stackoverflow不允许我发送,因为它主要是代码。我需要添加一些
lorem ipsum
语句)

Ut turpis purus,vulputate vitae sem
hive.parquet.use-column-names=true