2017-02-14 11 views
1

파티션 된 1 년의 기간에 대해 기존 테이블의 모든 파티션 열의 이름을 바꿀 때 - 이것이 내가 얻는 것입니다. 하이브의 모든 파티션 열의 이름을 바꾸는 방법

FAILED: ValidationFailureSemanticException Partition spec {partition_date=null} contains non-partition columns.

hive> ALTER TABLE test.usage PARTITION ('date') RENAME TO PARTITION (partition_date);

는 여기에서 해당 구문을 가지고 : 1

+0

이 명령의 출력이 무엇인지 말씀 해주십시오 수도 참조하십시오> 쇼 테이블 test.usage을 만들; 또한 사용중인 Hive 버전을 공유 할 수 있다면 유용 할 것이며 Hive 0.13에는 파티션 이름 변경 문제가 있습니다. – dbustosp

+0

참조 : http://stackoverflow.com/questions/32111036/how-to-alter-hive-partition-column-name/42252291#42252291 – dbustosp

답변

0

당신이 원하는 것은 변경 실제로 파티션의 값을 바꾸거나하는 경우 나는 100 % 확실하지 않다 감안할를 테이블이 분할 된 열.

파티션의 값의 이름을 변경한다고 가정 해 봅시다.

하이브 0.13에 문제가 있으며 하이브 0.14가 정상적으로 작동합니다. 어쨌든,이 작동합니다 :

set fs.hdfs.impl.disable.cache=false; 
set fs.file.impl.disable.cache=false; 

이제이 속성을 설정하여 쿼리를 실행하십시오.

> hive> set fs.hdfs.impl.disable.cache=false; 
> hive> set fs.file.impl.disable.cache=false; 
> hive> ALTER TABLE test.usage PARTITION (date='oldValue') RENAME TO PARTITION (date='newValue'); 

의 당신은 당신이 할 필요가 무엇인지이 경우 파티션 열

을 변경한다고 가정하자 테이블이 분할 될 열을 변경 테이블을 재 작성하는 것입니다.

참고 : 이미 파티션에 데이터가있는 경우 데이터를 다시 삽입해야합니다.

answer

+0

감사합니다! 사실 나는 파티션 칼럼의 변경을 찾고 있는데 이것은 도움이된다. – hadoop