2017-10-27 2 views
0

하이브에 테이블을 만들었습니다. 이제는 열 이름을 대체 할 때을 사용하려고합니다. 알터 쿼리는 다음의 org.antlr.runtime.BaseRecognizer.match org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken (BaseRecognizer.java:617) 에서하이브의 열을 바꿉니다

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

MismatchedTokenException (26 = 301!) (BaseRecognizer .java : 115) at org.apache.hadoop.hive.ql.parse.HiveParser.alterStatementSuffixAddCol (HiveParser.java:9898) at org.apache.hadoop.hive.ql.parse.HiveParser.alterTblPartitionStatementSuffix (HiveParser.java : 8524) at org.apache.hadoop.hive.ql.parse.HiveParser.alterTableStatementSuffix (HiveParser.java:8139) at org.apache.hadoop.hive.ql.parse.HiveParser.alterStatement (안녕하세요. veParser.java:7190) at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement (HiveParser.java:2602) at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement (HiveParser. java : 1589) at org.apache.hadoop.hive.ql.parse.HiveParser.statement (HiveParser.java:1065) at org.apache.hadoop.hive.ql.parse.ParseDriver.parse (ParseDriver.java : 201) at org.apache.hadoop.hive.ql.parse.ParseDriver.parse (ParseDriver.java:166) at org.apache.hadoop.hive.ql.Driver.compile (Driver.java:462) at org.apache.hadoop.hive.ql.Driver.compileInternal (Driver.java:1276) at org.apache.hadoop.hive.ql.Driver.runInternal (Driver.java:1393) at org.apache.hadoop. hive.ql.Driver.run (Driver.java:1205) at o rg.apache.hadoop.hive.ql.Driver.run (Driver.java:1195) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd (CliDriver.java:220) at org.apache.hadoop. hive.cli.CliDriver.processCmd (CliDriver.java:172) at org.apache.hadoop.hive.cli.CliDriver.processLine (CliDriver.java:383) at org.apache.hadoop.hive.cli.CliDriver. (CliDriver.java : 693) at org.apache.hadoop.hive.cli.CliDriver.main (CliDriver.java : 775) sun.reflect.DelegatingMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (원시 메소드) sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) 에서 (DelegatingMethodAccessorImpl.jav에서 628) a : 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 라인 2 : 7 일치하지 않는 입력 'eid'expecting) 'INT'근처에 추가 열 설명문

도와주세요. 하이브를 학습 중입니다

답변

0

ALTER TABLE <TableName> REPLACE COLUMNS은 기존의 모든 열을 제거하고 새로운 열 집합을 추가합니다. 당신이 ALTER TABLE <TableName> CHANGE <ColumnName>

ALTER TABLE <TableName> CHANGE ID EID INT;

이 페이지의 사용은 당신에게 정보를 많이 줄 것이다 만들 수있는 시나리오

REPLACE COLUMNS

ALTER TABLE <TableName> REPLACE COLUMNS (EID INT, EName STRING);

ALTER COLUMNS

관련 문제