[HADOOP] Hive 파티션 컬럼 이름을 변경하는 방법
HADOOPHive 파티션 컬럼 이름을 변경하는 방법
(파티션 스펙이 아닌) 파티션 컬럼 이름을 변경해야하는데 하이브 위키 및 일부 Google 페이지에서 명령을 찾았습니다. 파티션 스펙을 변경하는 옵션을 찾을 수 있습니다.
예를 들어
/ table / country = 'US'에서 미국을 미국으로 변경할 수 있지만 국가를 대륙으로 변경하고 싶습니다.
테이블을 삭제하고 다시 생성하는 파티션 컬럼 이름을 변경하는 데 사용할 수있는 유일한 옵션이 있다고 생각합니다. 사용할 수있는 다른 옵션이 있습니까?
미리 감사드립니다.
해결법
-
==============================
1.다음을 수행하여 메타 데이터의 열 이름을 변경할 수 있습니다. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ChangeColumnName/Type/Position/Comment
다음을 수행하여 메타 데이터의 열 이름을 변경할 수 있습니다. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ChangeColumnName/Type/Position/Comment
그러나 문서에 나와 있듯이 메타 데이터 만 변경됩니다. Hive 파티션은 이름 지정 패턴 columnName = spec을 사용하여 디렉토리로 구현됩니다. 따라서 "hadoop fs"명령을 사용하여 HDFS에서 해당 디렉토리의 이름을 변경해야합니다.
-
==============================
2.간단한 스왑 방법을 사용하여 파티션 열을 변경했습니다.
간단한 스왑 방법을 사용하여 파티션 열을 변경했습니다.
참고 : mv 명령은 복사 시간을 줄여 한 위치에서 다른 위치로 파일을 이동합니다. 또는 원래 테이블에 데이터를 복사하기 위해 LOAD DATA INPATH를 사용할 수 있습니다.
-
==============================
3.나중에 솔루션을 추가하십시오.
나중에 솔루션을 추가하십시오.
-
==============================
4.앞에서 말했듯이 파티션의 값을 매우 쉽게 바꿀 수 있습니다.
앞에서 말했듯이 파티션의 값을 매우 쉽게 바꿀 수 있습니다.
hive> ALTER TABLE test.usage PARTITION (country ='US') RENAME TO PARTITION (date='USA');
나는 이것이 당신이 찾고있는 것이 아니라는 것을 압니다. 유감스럽게도 데이터가 국가별로 이미 분할되어 있으므로 테이블을 삭제하고 HDFS에서 데이터를 제거한 다음 대륙을 파티션으로 사용하여 데이터를 다시 삽입해야합니다.
귀하의 경우에는 여러 파티션 레벨을 갖는 것이므로 폴더 구조가 다음과 같이 보일 것입니다.
/path/to/the/data/continent='america'/country='usa' /path/to/the/data/continent='america'/country='mexico' /path/to/the/data/continent='europe'/country='spain' /path/to/the/data/continent='europe'/country='italy' ...
그렇게하면 세분화 수준 (이 경우 대륙과 국가)별로 데이터를 쿼리 할 수 있습니다.
from https://stackoverflow.com/questions/32111036/how-to-alter-hive-partition-column-name by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 왜 YARN Java 힙 공간 메모리 오류입니까? (0) | 2019.08.04 |
---|---|
[HADOOP] hdfs의 하이브 테이블을 csv로 내보내기 (0) | 2019.08.04 |
[HADOOP] Flume을 사용하여 원격 노드에서 HDFS로 파일 전송 (0) | 2019.08.04 |
[HADOOP] Hadoop 프로그램의 Configured 클래스 사용법은 무엇입니까? (0) | 2019.08.03 |
[HADOOP] Hadoop Sequence File에서 마지막으로 수정 한 날짜를 얻으려면 어떻게해야합니까? (0) | 2019.08.03 |