현재 하이브 테이블에로드 된 모든 파티션을 삭제할 수 있습니까?하이브 테이블에서 모든 파티션을 삭제 하시겠습니까?
나는 내가 복구 파티션 문 모든 파티션을로드 할 수 있습니다 alter table <table> drop partition(a=, b=...);
있는 단일 파티션을 삭제할 수 있습니다. 하지만 모든 파티션을 삭제할 수는 없습니다.
EMR에서 지원하는 최신 하이브 버전 인 0.8.1을 사용하고 있습니다.
현재 하이브 테이블에로드 된 모든 파티션을 삭제할 수 있습니까?하이브 테이블에서 모든 파티션을 삭제 하시겠습니까?
나는 내가 복구 파티션 문 모든 파티션을로드 할 수 있습니다 alter table <table> drop partition(a=, b=...);
있는 단일 파티션을 삭제할 수 있습니다. 하지만 모든 파티션을 삭제할 수는 없습니다.
EMR에서 지원하는 최신 하이브 버전 인 0.8.1을 사용하고 있습니다.
버전 0.9.0부터는 모든 파티션을 한 번에 삭제하는 데 사용할 수있는 drop partition 문에 comparators을 사용할 수 있습니다.
예는 drop_partitions_filter.q 테스트 케이스에서 촬영 : 만 경우
CREATE TABLE t2 AS
SELECT column_name_1, ..., column_name_N FROM t1;
그것이 비 엄격 모드에서 수행해야한다는 것입니다 :
create table ptestfilter (a string, b int) partitioned by (c string, d string);
alter table ptestfilter add partition (c='US', d=1);
alter table ptestfilter add partition (c='US', d=2);
alter table ptestFilter add partition (c='Uganda', d=2);
alter table ptestfilter add partition (c='Germany', d=2);
alter table ptestfilter add partition (c='Canada', d=3);
alter table ptestfilter add partition (c='Russia', d=3);
alter table ptestfilter add partition (c='Greece', d=2);
alter table ptestfilter add partition (c='India', d=3);
alter table ptestfilter add partition (c='France', d=4);
show partitions ptestfilter;
alter table ptestfilter drop partition (c>'0', d>'0');
show partitions ptestfilter;
는 원래 테이블의 데이터를 사용하여 테이블을 만듭니다
set hive.mapred.mode=nonstrict;
도움이되기를 바랍니다. GL!
아래와 같이 기존 테이블 t1에서 새 테이블 t2를 만듭니다. 새로운 테이블에 파티션이있는 경우
create table t2 as
select * from t1;
드롭 된 테이블 t1
drop table t1;
지금 확인.
show partitions t2;
하이브는 파티션을 선택할 때 비교 연산자 (예를 들어 >
, <
, =
, <>
)를 사용할 수 있습니다. 예를 들어, 다음은 테이블의 모든 파티션을 삭제해야합니다.
ALTER TABLE table_name DROP PARTITION (partition_name > '0');
truncate table table_name;
모든 파티션을 삭제합니다. 분할 된 테이블을 삭제하려는 경우 특히 유용합니다.
잘못된 대답을 삭제하십시오. –
'FAILED : 의미 분석 오류 : 1:23 대상 테이블이 분할되어 있기 때문에 파티션 열을 지정해야합니다. 토큰 't1'근처에서 오류가 발생했습니다. –
@MattJoiner 수정되었지만 Balaswamy vaddeman에게 전체 크레딧이 적용됩니다. – www