LOAD DATA
적용 대상: Databricks 런타임
사용자가 지정한 디렉터리 또는 파일에서 Hive SerDe 테이블에 데이터를 로드합니다. 디렉터리를 지정하면 디렉터리의 모든 파일이 로드됩니다. 파일을 지정하면 단일 파일만 로드됩니다. 또한 문은 LOAD DATA
선택적 파티션 사양을 사용합니다. 파티션을 지정하면 데이터 파일(입력 원본이 디렉터리인 경우) 또는 단일 파일(입력 원본이 파일인 경우)이 대상 테이블의 파티션에 로드됩니다.
테이블이 캐시된 경우 명령은 테이블의 캐시된 데이터와 테이블을 참조하는 모든 종속 항목을 지웁니다. 다음에 테이블 또는 종속 항목에 액세스할 때는 캐시가 채워지는 시간이 지연됩니다.
구문
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
매개 변수
path
파일 시스템의 경로입니다. 절대 경로 또는 상대 경로일 수 있습니다.
-
삽입할 테이블을 식별합니다. 이름에는 임시 사양 또는 옵션 사양이 포함되어서는 안됩니다. 테이블을 찾을 수 없는 경우 Azure Databricks는 TABLE_OR_VIEW_NOT_FOUND 오류를 발생시킵니다.
-
삽입을 위한 대상 파티션을 지정하는 선택적 매개 변수입니다. 파티션을 부분적으로만 지정할 수도 있습니다.
현지
지정된 경우 일반적으로 분산 스토리지인 기본 파일 시스템 대신 로컬 파일 시스템에 대해
INPATH
가 확인됩니다.OVERWRITE
기본적으로 새 데이터가 테이블에 추가됩니다.
OVERWRITE
가 사용되는 경우 테이블은 대신 새 데이터로 덮어씁니다.
예제
-- Example without partition specification.
-- Assuming the students table has already been created and populated.
> SELECT * FROM students;
name address student_id
--------- ---------------------- ----------
Amy Smith 123 Park Ave, San Jose 111111
> CREATE TABLE test_load (name VARCHAR(64), address VARCHAR(64), student_id INT) USING HIVE;
-- Assuming the students table is in '/user/hive/warehouse/'
> LOAD DATA LOCAL INPATH '/user/hive/warehouse/students' OVERWRITE INTO TABLE test_load;
> SELECT * FROM test_load;
name address student_id
--------- ---------------------- ----------
Amy Smith 123 Park Ave, San Jose 111111
-- Example with partition specification.
> CREATE TABLE test_partition (c1 INT, c2 INT, c3 INT) PARTITIONED BY (c2, c3);
> INSERT INTO test_partition PARTITION (c2 = 2, c3 = 3) VALUES (1);
> INSERT INTO test_partition PARTITION (c2 = 5, c3 = 6) VALUES (4);
> INSERT INTO test_partition PARTITION (c2 = 8, c3 = 9) VALUES (7);
> SELECT * FROM test_partition;
c1 c2 c3
--- --- ---
1 2 3
4 5 6
7 8 9
> CREATE TABLE test_load_partition (c1 INT, c2 INT, c3 INT) USING HIVE PARTITIONED BY (c2, c3);
-- Assuming the test_partition table is in '/user/hive/warehouse/'
> LOAD DATA LOCAL INPATH '/user/hive/warehouse/test_partition/c2=2/c3=3'
OVERWRITE INTO TABLE test_load_partition PARTITION (c2=2, c3=3);
> SELECT * FROM test_load_partition;
c1 c2 c3
--- --- ---
1 2 3