【问题标题】:Cloudera 5.6: Parquet does not support date. See HIVE-6384Cloudera 5.6:Parquet 不支持日期。见 HIVE-6384
【发布时间】:2016-09-18 07:52:34
【问题描述】:

我目前正在使用 Cloudera 5.6 尝试基于另一个表在 hive 表中创建 parquet 格式表,但我遇到了错误。

create table sfdc_opportunities_sandbox_parquet like 
sfdc_opportunities_sandbox STORED AS PARQUET

错误信息

Parquet does not support date. See HIVE-6384

我读到 hive 1.2 已修复此问题,但 Cloudera 5.6 和 5.7 不附带 hive 1.2。有没有人找到解决这个问题的方法?

【问题讨论】:

  • 我猜到那时你已经弄清楚了?如果您可以使用 spark 数据框,则没有问题,但我自己在某些情况下需要使用 Hive,除了编写 long 类型然后转换为 view 之外,我没有找到任何解决方法。
  • 将日期列设为字符串或时间戳。我认为没有其他选择。
  • 我已经使用时间戳一年了。
  • 假设您仍然必须使用timestamp
  • 我们使用的是更新版本的 CDH,但我们没有更改 ETL 流程,所以是的,我们仍然使用时间戳。但我们正在慢慢离开 CDH

标签: hive cloudera parquet


【解决方案1】:

除了使用 TIMESTAMP 等其他数据类型或ORC 等其他存储格式之外,如果对使用的 Hive 版本和 Parquet 文件存储格式存在依赖关系,则可能无法解决。

根据 Clouderas CDH 5 Packaging and Tarball Information,整个分支 5 在 v1.5.0 中包含 Apache Parquet,在 v1.1.0 中包含 Apache Hive

日期在 ParquetSerde 中使用 HIVE-8119 和 Hive 1.2 实现。

【讨论】:

  • 是的,我已经使用时间戳作为解决方法一年了
猜你喜欢
  • 2015-07-30
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 2018-09-14
  • 2021-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-12-20
相关资源
最近更新 更多