2017-03-15 3 views
1

私はcreate table文を含むHQLファイルを持っています。u0001 delimeterの問題点

CREATE TABLE IF NOT EXISTS employee (eid int, name String, 
salary String, destination String) 
COMMENT 'Employee details' 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '^A' 
LINES TERMINATED BY '\n' 
STORED AS TEXTFILE; 

テーブルのフィールド区切り文字は、私は私は、私は真っすぐを使用して実行しているときには完全にfine.But作業、ハイブ(ハイブ-F)を使用して、このHQLファイルを実行しています/ U0001(CTRL-A).Whenです解析例外

[[email protected] Desktop]$ beeline -u jdbc:hive2://quickstart:10000/default -n admin -d org.apache.hive.jdbc.HiveDriver -f createtable.hql 
Connecting to jdbc:hive2://quickstart:10000/default 
Connected to: Apache Hive (version 1.1.0-cdh5.4.2) 
Driver: Hive JDBC (version 1.1.0-cdh5.4.2) 
Transaction isolation: TRANSACTION_REPEATABLE_READ 
0: jdbc:hive2://quickstart:10000/default> CREATE TABLE IF NOT EXISTS employenter code hereee (eid int, name String, 
0: jdbc:hive2://quickstart:10000/default> salary String, destination String) 
0: jdbc:hive2://quickstart:10000/default> COMMENT 'Employee details' 
0: jdbc:hive2://quickstart:10000/default> ROW FORMAT DELIMITED 
0: jdbc:hive2://quickstart:10000/default> 'FIELDS TERMINATED BY ' 
0: jdbc:hive2://quickstart:10000/default> LINES TERMINATED BY '\n' 
0: jdbc:hive2://quickstart:10000/default> STORED AS TEXTFILE; 
Error: Error while compiling statement: FAILED: ParseException line 5:0 cannot recognize input near ''FIELDS TERMINATED BY '' 'LINES' 'TERMINATED' in serde properties specification (state=42000,code=40000) 

を得ることが真っすぐシェルのように思えるが(CTRL a)は、任意のヘルプをいただければ幸いです

すべての問題を持っていないハイブクライアントをcorrectly.But非印字可能な文字を解析することができません

答えて

2

使用次のいずれかのオプション:

... fields terminated by '\001' (Octal) 
... fields terminated by '1' (Decimal) 
... fields terminated by '\u0001' (Hexadecimal) 

はとても「第三のオプションが勝っ使用して、バージョン2.1で修正されると仮定されたUnicodeリテラル(「\のU0001」)に関連するバグがあったことに注意してください以前のバージョンでは動作しません。 https://issues.apache.org/jira/browse/HIVE-13434