Hive 替换配置单元中的列
我已经在配置单元中创建了一个表,现在我正在尝试使用替换列来替换列名称。 Alter查询是:Hive 替换配置单元中的列,hive,hiveql,Hive,Hiveql,我已经在配置单元中创建了一个表,现在我正在尝试使用替换列来替换列名称。 Alter查询是: **ALTER TABLE emp1 REPLACE COLUMNS ( id INT eid int, name STRING ename string, sal INT esal int, city string ecity string, country string ecountry string);** 不匹配的TokenException(26!=301) 位于org.antlr.runti
**ALTER TABLE emp1 REPLACE COLUMNS (
id INT eid int,
name STRING ename string,
sal INT esal int,
city string ecity string,
country string ecountry string);**
不匹配的TokenException(26!=301)
位于org.antlr.runtime.baserecoverfrommatchedtoken(baserecoverizer.java:617)
位于org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
位于org.apache.hadoop.hive.ql.parse.HiveParser.alterStatementSuffixAddCol(HiveParser.java:9898)
位于org.apache.hadoop.hive.ql.parse.HiveParser.alterTblPartitionStatementSuffix(HiveParser.java:8524)
位于org.apache.hadoop.hive.ql.parse.HiveParser.alterTableStatementSuffix(HiveParser.java:8139)
位于org.apache.hadoop.hive.ql.parse.HiveParser.alterStatement(HiveParser.java:7190)
位于org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2602)
位于org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1589)
位于org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1065)
位于org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:201)
位于org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
位于org.apache.hadoop.hive.ql.Driver.compile(Driver.java:462)
位于org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1276)
位于org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1393)
位于org.apache.hadoop.hive.ql.Driver.run(Driver.java:1205)
位于org.apache.hadoop.hive.ql.Driver.run(Driver.java:1195)
位于org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:220)
位于org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:172)
位于org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:383)
位于org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:775)
位于org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:693)
位于org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:628)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.hadoop.util.RunJar.run(RunJar.java:221)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:136)
失败:在add column语句的“INT”附近解析异常行2:7不匹配的输入(预期为“eid”)
请帮帮我。我正在学习hiveALTER TABLE REPLACE COLUMNS
删除所有现有列并添加新列集
altertable替换列
(EID INT,
珐琅字符串)代码>
对于您的场景,您可以使用altertablechange
ALTER TABLE CHANGE ID EID INT代码>
此页面将为您提供大量信息当您希望表中有完全不同的列时,请使用替换。如果没有,最好使用alter语句中的CHANGE选项重命名列名称