Load Data 문
Load Data 문
설명
LOAD DATA 문은 사용자가 지정한 디렉터리 또는 파일에서 데이터를 Hive 테이블로 로드하는 데 사용됩니다. 로드 작업은 현재 데이터 파일을 Hive 테이블에 해당하는 위치로 옮기는 순수한 복사/이동(copy/move) 작업입니다.
출처: 문서
본문
구문
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)];
매개변수
-
filepath
filepath는 다음과 같을 수 있습니다.- 상대 경로, 예:
warehouse/data1 - 절대 경로, 예:
/user/hive/warehouse/data1 - 스키마와 (선택적으로) authority를 가진 전체 URL, 예:
hdfs://namenode:9000/user/hive/warehouse/data1
filepath는 파일(이 경우 해당 단일 파일만 로드됨) 또는 디렉터리(이 경우 디렉터리의 모든 파일이 로드됨)를 가리킬 수 있습니다. - 상대 경로, 예:
-
LOCALLOCAL키워드를 지정하면 다음과 같습니다.- 로컬 파일 시스템에서
filepath를 찾습니다. 상대 경로를 지정하면 사용자의 현재 작업 디렉터리를 기준으로 해석됩니다. 로컬 파일에 대해 전체 URI를 지정할 수도 있습니다 - 예:file:///user/hive/warehouse/data1 filepath가 가리키는 모든 파일을 대상 파일 시스템으로 복사(copy) 하려고 시도합니다. 대상 파일 시스템은 location 속성을 보고 추론합니다. 복사된 데이터 파일은 테이블의 위치로 이동됩니다.
지정하지 않으면 다음과 같습니다.
- 스키마나 authority를 지정하지 않으면 NameNode URI를 지정하는 hadoop 구성 변수
fs.default.name의 스키마와 authority를 사용합니다. - 경로가 절대 경로가 아니면
/user/를 기준으로 해석됩니다. filepath가 가리키는 파일을 테이블(또는 파티션)로 이동(move) 하려고 시도합니다.
- 로컬 파일 시스템에서
-
OVERWRITE기본적으로
filepath가 가리키는 파일은 테이블(또는 파티션)에 추가됩니다.OVERWRITE를 지정하면 원본 데이터가 파일로 대체됩니다. -
PARTITION ( ... )데이터를 테이블의 특정 파티션으로 로드하도록 지정하는 옵션입니다.
PARTITION절을 지정하면 테이블은 파티션 테이블이어야 합니다.
참고:
파티션으로 데이터를 로드할 때 파티션 지정은 전체 파티션 지정이어야 합니다. 부분 파티션 지정은 아직 지원되지 않습니다.
예시
-- load data into table
LOAD DATA LOCAL INPATH '/user/warehouse/hive/t1' OVERWRITE INTO TABLE t1;
-- load data into partition
LOAD DATA LOCAL INPATH '/user/warehouse/hive/t1/p1=1' INTO TABLE t1 PARTITION (p1=1);