2017-06-12 89 views
0

我对Hive完全陌生。在创建一个配置单元表,我遇到了以下错误:Hive允许列名称

>create table coffee (WINDOW int); 

Error: Error while compiling statement: FAILED: ParseException line 1:23 
cannot recognize input near 'WINDOW' 'int' ')' in column specification 
(state=42000,code=40000) 

当我挖多了,我意识到它的发生是由于同时蜂巢创建表,我已经使用备用关键字“窗口”。我是否可以在Hive中获得全部保留关键字的列表,这些列表不能用作列名称。我在下面的链接中获得了保留关键字列表,但在创建表格时,我可以使用很多列出的保留关键字作为列名称。

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

+0

实际上,“保留字”列表取决于Hive版本,并且列名称的*实际*保留字列表也取决于Hive版本。避免每个“保留字”留在安全的一面。 –

回答

0

不能使用保留的关键字作为列名。 WINDOW是一个反转关键字。所以为你的变量使用一些其他的名字。

+0

正如我在我的描述中提到的。我知道WINDOW是不能使用的保留关键字。我的问题是,如果存在任何不能用作Hive列的保留关键字列表。 –

+0

在反引号引用('')中使用reserve关键字,它将允许您用作列名称。 –

0

你可以使用反引号引号来创建关键字名表/列这样

create table coffee (`WINDOW` int); 

无论如何,我会建议选择一个不同的名字,如果你想选择通过列名的数据,你也将必须使用反引号引号