2016-11-30 4 views
0

하이브에 대한 일반적인 질문이 이미 있습니다 ( Is there a way to alter column type in hive table?). 이 질문에 대한 대답은 alter table change 명령을 사용하여 스키마를 변경할 수 있음을 나타냅니다.ORC로 저장된 하이브 테이블의 열을 변경하는 방법이 있습니까?

그러나 파일이 ORC로 저장된 경우에도 가능합니까?

+0

왜 이것을 시도하지 않았습니까? ORC 기능은 hadoop/hive 버전에 따라 다름 – leftjoin

답변

0

ORC 테이블에서 테스트를 실행했습니다. 문자열을 float 열로 변환 할 수 있습니다.

ALTER TABLE test_orc CHANGE third_column third_column float;

는이 플로트 컬럼에 문자열 컬럼으로 표시됩니다 third_column라는 열을 변환합니다. 열의 이름을 변경할 수도 있습니다.

사이드 노트 : ORC의 다른 변경으로 인해 문제가 발생할 수 있는지 궁금합니다. 열을 재정렬하려고 할 때 예외가 발생했습니다.

ALTER TABLE test_orc CHANGE third_column third_column float AFTER first_column;

예외는 다음과 같습니다 실패 : 실행 오류, org.apache.hadoop.hive.ql.exec.DDLTask에서 리턴 코드 (1). default.test_orc 테이블에 대해 열 순서 변경이 지원되지 않습니다. SerDe는 호환되지 않을 수 있습니다.

+0

죄송합니다 ... 어떻게 열 순서를 바꾸려고 했습니까? 열을 재정렬하는 데 사용되는 것은 무엇입니까? 이 예외를 비밀로 유지 하시겠습니까? – leftjoin

+0

의견을 보내 주셔서 감사합니다. 예, 예외 정보를 추가하는 것이 좋습니다. 누락 된 정보를 추가했습니다. –

+0

열을 재정렬해야하는 이유는 무엇입니까? – leftjoin