하이브에 대한 일반적인 질문이 이미 있습니다 ( Is there a way to alter column type in hive table?). 이 질문에 대한 대답은 alter table change 명령을 사용하여 스키마를 변경할 수 있음을 나타냅니다.ORC로 저장된 하이브 테이블의 열을 변경하는 방법이 있습니까?
그러나 파일이 ORC로 저장된 경우에도 가능합니까?
하이브에 대한 일반적인 질문이 이미 있습니다 ( Is there a way to alter column type in hive table?). 이 질문에 대한 대답은 alter table change 명령을 사용하여 스키마를 변경할 수 있음을 나타냅니다.ORC로 저장된 하이브 테이블의 열을 변경하는 방법이 있습니까?
그러나 파일이 ORC로 저장된 경우에도 가능합니까?
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는 호환되지 않을 수 있습니다.
왜 이것을 시도하지 않았습니까? ORC 기능은 hadoop/hive 버전에 따라 다름 – leftjoin