복붙노트

[HADOOP] 그것은 아브 스키마 파일에 의해 정의 된 외부 테이블의 기존 열의 메타 데이터를 변경할 수 있습니까?

HADOOP

그것은 아브 스키마 파일에 의해 정의 된 외부 테이블의 기존 열의 메타 데이터를 변경할 수 있습니까?

이것은 내가 물었다 이전 질문의 연장이다 : 그것은 하이브에서 분할 된 테이블에있는 컬럼의 메타 데이터를 변경할 수 있습니까?

질문 :이 아브 스키마 파일에 의해 정의 된 외부 테이블의 기존 열의 메타 데이터를 변경할 수 있습니까?

I 분할 및 외부 모두로 저장된 테이블에 열 메타 데이터를 변경해야한다. 열 자체 분할 열 아니다. 메타 데이터는 별도 AVRO 파일에 저장된다. 나는 업데이트 된 메타 데이터가 각각의 분할 된 파일에 아브 파일에 있지만없는 것을 확인할 수 있습니다.

파티션 된 파일에 메타 데이터를 변경하기 위해, 나는 ALTER TABLE TABLENAME 변경 COLUMN의 ColumnName의 ColumnName BIGINT CASCADE를 실행; 명령하지만, 나는 다음과 같은 오류가 발생합니다 :

내가 나서서 성공적으로 다음 명령을 실행 :

ALTER TABLE TABLENAME UNSET TBLPROPERTIES ( 'avro.schema.url');

그때 성공적으로 변경 COLUMN 명령을 실행 :

ALTER TABLE TABLENAME 변경 COLUMN의 ColumnName의 ColumnName BIGINT CASCADE;

나는 테이블에 SELECT를 수행 할 때, 나는 아직도 파티션의 파일에 어떤 대 메타 스토어에 무엇을 사이에 일치하지 않는 메타 데이터를 나타내는 오류가 발생합니다. 나는 파티션 데이터 파일을 열어이 문제를 확인했다. 그래서, CASCADE 옵션은 파티션에 적용하지 않은 것 같습니다.

해결법

    from https://stackoverflow.com/questions/58369559/is-it-possible-to-change-an-existing-columns-metadata-on-an-external-table-that by cc-by-sa and MIT license