2016-07-10 36 views
-1

使用以下命令在配置單元中創建表,但發生錯誤。無法在Hive中爲csv文件創建表

CREATE TABLE TestData (id1 int, id2 int, id3 int, id4 String) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ stored as textfile; 

錯誤

FAILED: ParseException line 1:106 mismatched input ',' expecting StringLiteral near 'BY' in table row format's field separator 

我已經試過 '\ 054' 而不是 '',但沒有工作。

+0

問題的最可能的原因是「」是不正確的 –

回答

0

你並沒有提到如何行分開..

編輯: 即行

0

大多數時候事情是不睜隻眼可見的,可通過vi編輯器中可以看出; )。有命令control characters

cat -v file.txt 
    CREATE TABLE TestData (id1 int, id2 int, id3 int, id4 String) ROW FORMAT DELIMITED 
FIELDS TERMINATED BY M-bM-^@M-^X,M-bM-^@M-^Y stored as textfile; 

解決方案 - 不要複製粘貼命令,只需鍵入它。

0

字符串類型包含hive中的兩種數據類型:VARCHAR和CHAR。 而不是字符串使用VARCHARCHAR作爲數據類型,因爲這將解決您的問題。

*在指定varchar時也不要忘記提及大小。

例子:CREATE TABLE TestData (id1 int, id2 int, id3 int, id4 varchar (65355)) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ stored as textfile;

+0

它不能解決問題,直到垃圾字符在那裏查詢。 – syadav