2017-06-12 92 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); 

無論如何,我會建議選擇一個不同的名字,如果你想選擇通過列名的數據,你也將必須使用反引號引號