2016-04-27 5 views
2

Ich versuche, den folgenden Code in hive auszuführen:Spaltenname DIV zeigt Fehler in hive

create table xyz (name string,div int) ;

Es Fehler zeigt. Können wir nicht eine Spalte im Stock mit dem Namen div verwenden? Ich habe eine große Tabelle, die eine Spalte hat div, Ausführen, dass hql mich unter Fehler warf. Das ist, wie ich mit einem kleineren hql als das oben genannte versuchte, und es zeigt denselben Fehler an. Ich benutze Bienenstock 0.13.

NoViableAltException([email protected][]) 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) FAILED: ParseException Linie 2.15 nicht Eingang in der Nähe von 'div' erkennen 'int' ')' in Spaltenangabe `

+1

Div ist eine SQL reserviertes Wort, damit das Stichwort von der Nutzung in hive.Also Ihr blockiert ' Workaround funktioniert. –

Antwort

1

Nun, die Antwort ist gefunden!

Tabelle erstellen xyz (Name Zeichenfolge, div int); Das funktioniert!

Surround div mit `Schlüssel und dann funktioniert es. Stack Overflow konvertiert es in einen speziellen hervorgehobenen Text, so dass dies in meiner create table-Anweisung nicht sichtbar ist. Ich nehme an div ein Stichwort in hive wäre. (Allerdings nicht in jedem Dokument gefunden)

Danke, Neethu

Verwandte Themen