2017-10-22 31 views
0

는, 이것은 "생성"명령의 정의입니다 ORC 테이블에 열을 바꾸기 :하이브 내가 ORC 파일에 저장 하이브 테이블이

ROW FORMAT SERDE 
    'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
STORED AS INPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' 

내가 말에서 열을 삭제하려면, 그래서 "테이블 바꾸기 - 열 바꾸기"명령을 시도했는데 열 이름을 쓰지 않았습니다.이 오류가 있습니다. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replacing columns cannot drop columns for table default.table. SerDe may be incompatible

하이브에있는 ORC 테이블의 열을 바꿀 수있는 방법이 있습니까? Google이이 문제에 관해 나를 실패했습니다 ....

고마워!

답변

0

하이브 튜토리얼에 따라 REPLACE COLUMNS 명령은 기본 SerDe (DynamicSerDe, MetadataTypedColumnsetSerDe, LazySimpleSerDe 및 ColumnarSerDe)가있는 테이블에 대해서만 수행 할 수 있습니다.

귀하의 경우, 필요한 열이있는 새 테이블을 만드십시오. 이전 테이블에서 새 테이블에 삽입하십시오. 이전 테이블의 이름을 다른 테이블로 바꿉니다. 새 테이블의 이름을 이전 테이블로 바꿉니다.

감사합니다.