Hive 替换配置单元中的列

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查询是:

**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”)

请帮帮我。我正在学习hive

ALTER TABLE REPLACE COLUMNS
删除所有现有列并添加新列集

altertable替换列
(EID INT,
珐琅字符串)

对于您的场景,您可以使用
altertablechange

ALTER TABLE CHANGE ID EID INT


此页面将为您提供大量信息

当您希望表中有完全不同的列时,请使用替换。如果没有,最好使用alter语句中的CHANGE选项重命名列名称