-1

I am trying to create a partitioned table from the Hive CLI,

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 ',';

But the terminal throws an exception instead "ParseException".

The error dump,

NoViableAltException(100@[])
    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

Any clue what I am missing here? The syntax looks impeccable :)

Thanks

1 Answer 1

1

Exchange is a keyword in hive. You have to use a different name for your partition column.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.