列名DIV显示配置单元中的错误

时间:2016-04-27 18:24:13

标签: hadoop hive hbase

我正在尝试在hive中执行以下代码:

create table xyz (name string,div int) ;

显示错误。我们不能在名称为div的配置单元中使用列吗?我有一个大型表,其中有一列div,执行该hq会让我失误。这就是我尝试使用较小的hql作为上面的那个,它显示相同的错误。我正在使用hive 0.13。

NoViableAltException(14@[])  at org.apache.hadoop.hive.ql.parse.HiveParser_IdentifiersParser.identifier(HiveParser_IdentifiersParser.java:11627)  at org.apache.hadoop.hive.ql.parse.HiveParser.identifier(HiveParser.java:40134)  at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameType(HiveParser.java:34747)  at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeList(HiveParser.java:32979)  at org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:4544)  at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2144)  at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1398)  at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1036)  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:408)  at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:322)  at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:976)  at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1041)  at org.apache.hadoop.hive.ql.Driver.run(Driver.java:912)  at org.apache.hadoop.hive.ql.Driver.run(Driver.java:902)  at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)  at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)  at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)  at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:793)  at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)  at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)  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.main(RunJar.java:212) 失败:ParseException行2:15无法识别列规范中'div''int'')'附近的输入

1 个答案:

答案 0 :(得分:1)

好的答案就找到了!

create table xyz(name string,div int);这有效!

使用`键环绕div然后它可以工作。  堆栈溢出将其转换为特殊的突出显示文本,因此在我的create table语句中不可见。 我认为div将是hive中的关键字。(虽然在任何文档中都找不到)

谢谢, 尼