【问题标题】:Query fails on presto-cli for a table created in hive in orc format with data residing in s3在 presto-cli 上查询以 orc 格式在 hive 中创建且数据位于 s3 中的表失败
【发布时间】:2017-11-17 09:27:25
【问题描述】:

我设置了一个 Amazon EMR 实例,其中包括 1 个主实例和 1 个核心(m4 大型),具有以下版本详细信息: 电子病历:5.5.0 急速:急速 0.170 Hadoop 2.7.3 HDFS Hive 2.1.1 元存储

我的 Spark 应用程序将 ORC 中的数据写入 Amazon S3。然后我在 hive (create external table TABLE ... partition() stored as ORC location 's3a"//') 中创建了表,并尝试从 presto-cli 进行查询,但查询SELECT * from TABLE 出现以下错误: 查询 20170615_033508_00016_dbhsn 失败:com.facebook.presto.spi.type.DoubleType

唯一有效的查询是: SELECT COUNT(*) from TABLE

有什么想法吗?

【问题讨论】:

  • 您是如何重新排序文件的?您是否使用 hive 目录进行查询? ORC 不应该有订单问题。你能解释一下吗?

标签: hive orc presto


【解决方案1】:

发现问题。存储为 orc 时的列顺序与在 hive 中创建表时的顺序不匹配:)!!!

【讨论】:

  • AFAIK, ORC 文件已经 incorporate schema information;因此,我很困惑为什么仅仅重新排序列会导致您的查询失败(我希望这是CSV文件而不是ORC)
  • 我同意。 @iyerland 你能解释一下吗
猜你喜欢
  • 2017-02-22
  • 2020-08-15
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 2017-11-25
  • 2018-04-19
  • 2018-10-23
相关资源
最近更新 更多