带有列的“创建表”的Hive-问题具有空间

时间:2016-08-13 20:59:29

标签: sql hive

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

CREATE TABLE TEST2("Kod ASS" String)

得到如下错误

  

错误:编译语句时出错:FAILED:ParseException行1:19无法识别'"" Kod ASS"' '字符串' ')'在列规范中   SQLState:42000   ErrorCode:40000

2 个答案:

答案 0 :(得分:5)

显示有关列名的手册:

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为none。在这种配置中,   反引号名称被解释为正则表达式。有关细节,   请参阅支持列名称中的带引号的标识符。

答案 1 :(得分:0)

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

创建表 TEST2(Kod ASS String) 存储为文本文件;

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