【问题标题】:Hive- issue with Create Table with column have spaceHive-创建表的问题,列有空间
【发布时间】:2016-12-20 14:09:15
【问题描述】:

需要一些建议。在 HIVE DB 中是否可以创建具有如下空间的列的表

CREATE TABLE TEST2("Kod ASS" String)

得到如下错误

错误:编译语句时出错:FAILED:ParseException line 1:19 cannot identify input near '"Kod ASS"' 'String' ')' in column specification SQL状态:42000 错误代码:40000

【问题讨论】:

    标签: sql hive


    【解决方案1】:

    显示有关列名的手册:

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

    在 Hive 0.12 及更早版本中,表名和列名中只允许使用字母数字和下划线字符。

    在 Hive 0.13 及更高版本中,列名可以包含任何 Unicode 字符(请参阅 HIVE-6013)。中指定的任何列名 反引号 (`) 按字面意思处理。在反引号字符串中,使用 双反引号 (``) 表示反引号字符。反引号 引用还允许使用保留关键字表和 列标识符。

    要恢复到 0.13.0 之前的行为并将列名限制为字母数字和下划线字符,请设置配置属性 hive.support.quoted.identifiers 无。在这种配置中, 反引号名称被解释为正则表达式。有关详细信息, 请参阅在列名称中支持带引号的标识符。

    【讨论】:

    • 我可以在哪里设置 hive.support.quoted.identifiers?你有什么例子吗?
    【解决方案2】:

    创建表 DB_Name.Table_name ( First name VARCHAR(64), Last name VARCHAR(64), Location id VARCHAR(64) , age INT, gpa DECIMAL(3,2)) 按(年龄)聚集到 2 个存储桶中,存储为 ORC;

    CREATE TABLE TEST2(Kod ASS String) 存储为文本文件;

    您可以使用 并将列名放入其中。 我希望两者都对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2017-08-28
      • 2020-01-04
      相关资源
      最近更新 更多