본문 바로가기
MySql

MySQL 동적 파티셔닝 + CREATE AS on HIVE

by 베이스 공부 2020. 12. 11.
반응형

HiveCLI에서 CREATE AS 및 동적 파티셔닝을 사용하여 다른 테이블에서 새 테이블을 만들려고합니다. 이 예제가있는 Hive 공식 위키에서 배우고 있습니다.

 CREATE TABLE T (key int, value string) 
 PARTITIONED BY (ds string, hr int) AS
 SELECT key, value, ds, hr+1 hr1 
   FROM srcpart 
   WHERE ds is not null 
   And hr>10;

하지만이 오류가 발생했습니다.

실패 : SemanticException [오류 10065] :

CREATE TABLE AS SELECT 명령은 대상 테이블의 열 목록을 지정할 수 없습니다.


 

해결 방법

 

이미 대상 테이블의 전체 스키마를 알고 있으므로 먼저 작성하고 LOAD DATA 명령으로 채우십시오.

SET hive.exec.dynamic.partition.mode=nonstrict;

CREATE TABLE T (key int, value string) 
PARTITIONED BY (ds string, hr int);

INSERT OVERWRITE TABLE T PARTITION(ds, hr) 
SELECT key, value, ds, hr+1 AS hr 
   FROM srcpart 
   WHERE ds is not null 
   And hr>10;

참고 : 전체 동적 파티션 삽입을 수행하고 있으므로 set 명령이 필요합니다.

 

참조 페이지 https://stackoverflow.com/questions/21477855

 

 

반응형

댓글