2016-01-29 94 views
0

我試圖從蜂巢CLI創建分區表,Hive |無法創建分區表| ParseException的

CREATE EXTERNAL TABLE IF NOT EXISTS stocks (
    ymd    STRING, 
    price_open  FLOAT, 
    price_high  FLOAT, 
    price_low  FLOAT, 
    price_close  FLOAT, 
    volume   FLOAT, 
    price_adj_close FLOAT 
) 
PARTITIONED BY (exchange STRING, symbol STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 

但終端拋出一個異常,而不是「ParseException的」。

錯誤轉儲,

NoViableAltException([email protected][]) 
    at org.apache.hadoop.hive.ql.parse.HiveParser_IdentifiersParser.identifier(HiveParser_IdentifiersParser.java:11545) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.identifier(HiveParser.java:44551) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameType(HiveParser.java:38215) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeList(HiveParser.java:36417) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.tablePartition(HiveParser.java:32852) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:4922) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2364) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1586) 
    at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1062) 
    at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:199) 
    at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166) 
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:393) 
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:305) 
    at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1110) 
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1158) 
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1047) 
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1037) 
    at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:207) 
    at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:159) 
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:370) 
    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:756) 
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) 
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 
FAILED: ParseException line 10:17 cannot recognize input near 'exchange' 'STRING' ',' in column specification 

任何線索,我在這裏失蹤?語法看起來無可挑剔:)

謝謝

回答

1

交換是蜂巢中的關鍵字。您必須爲分區列使用不同的名稱。