[HADOOP] 동적 파티션 + HIVE에서의 CREATE AS
HADOOP동적 파티션 + HIVE에서의 CREATE AS
HiveCLI에서 CREATE AS 및 동적 파티셔닝을 사용하여 다른 테이블에서 새 테이블을 만들려고합니다. 이 예제가있는 Hive 공식 wiki에서 배우고 있습니다.
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;
그러나 나는이 오류를 받았다.
출처 : https://cwiki.apache.org/confluence/display/Hive/DynamicPartitions#DynamicPartitions-Syntax
해결법
-
==============================
1.목표 테이블의 전체 스키마를 이미 알고 있으므로 먼저 테이블을 작성하고 LOAD DATA 명령으로 채우십시오.
목표 테이블의 전체 스키마를 이미 알고 있으므로 먼저 테이블을 작성하고 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 명령이 필요합니다.
-
==============================
2.
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;
위의 코드에서 Create 문 대신 다음을 사용합니다. CREATE TABLE T srcpart와 같습니다.
파티셔닝이 비슷한 경우.
from https://stackoverflow.com/questions/21477855/dynamic-partitioning-create-as-on-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브, S3, EMR 및 복구 파티션으로 데이터로드 (0) | 2019.07.11 |
---|---|
[HADOOP] 블록 크기에 대한 Hadoop fs 검색? (0) | 2019.07.11 |
[HADOOP] HDFS 데이터 몇 줄 가져 오기 (0) | 2019.07.11 |
[HADOOP] 메인 클래스 org.apache.hadoop.hdfs.server.namenode.Namenode를 찾거나로드 할 수 없습니다. (0) | 2019.07.11 |
[HADOOP] Hadoop - datanode 및 tasktracker 다시 시작 (0) | 2019.07.11 |