【问题标题】:Using reserved words in Hive在 Hive 中使用保留字
【发布时间】:2016-01-11 18:12:14
【问题描述】:

我正在将数据迁移到 Hive 1.2,并且我意识到,默认情况下,我不再被允许使用保留字作为列名。如果要使用保留字,则需要显式设置以下设置:

hive.support.sql11.reserved.keywords=false

我的问题是,更改此默认值会导致任何意外问题吗?在更改之前我应该​​注意什么问题?

顺便说一句,此票证中记录了此更改:https://issues.apache.org/jira/browse/HIVE-6617

【问题讨论】:

  • 你仍然可以使用任何你想要的字符串文字,只要你每次用 back-quotes (你避免使用标点符号) => create table DUH (`user` string, `Look ma no hands` string)
  • 是的,我也看到了该解决方案,但我希望能够保持表格与以前版本中的完全相同。我总是发现引用的列名令人困惑。

标签: hadoop hive hiveql hadoop2 hive-configuration


【解决方案1】:

此配置属性 hive.support.sql11.reserved.keywords 在 Hive 1.2.0 中以 HIVE-6617 添加,并在 Hive 2.3.0 中以 HIVE-14872 删除

删除它是为了简化解析器逻辑并减少生成的解析器代码的大小。 详情请阅读HIVE-14872中的描述。

考虑到这一点,使用带引号的标识符(使用反引号)重写您的代码或重命名标识符越早越好。

【讨论】:

  • HIVE 3版本hive.support.sql11.reserved.keywords的新设置是什么,是一样的还是有其他设置
  • @SanthoshChakka 此设置已删除。使用反引号或重命名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-03
相关资源
最近更新 更多