LOAD DATA
適用於: Databricks Runtime
從使用者指定的目錄或檔案將數據載入 Hive SerDe 資料表。 如果指定目錄,則會載入目錄中的所有檔案。 如果指定檔案,則只會載入單一檔案。 此外,語句會 LOAD DATA
採用選擇性的數據分割規格。 指定分割區時,數據檔(輸入來源為目錄時)或單一檔案(輸入來源為檔案時)會載入目標數據表的數據分割。
如果快取資料表,命令會清除資料表的快取資料,以及參考資料表的所有相依項。 下次存取資料表或相依項時,快取將會延遲填滿。
語法
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
參數
path
檔案系統的路徑。 它可以是絕對路徑或相對路徑。
-
識別要插入的數據表。 名稱不得包含 時態規格或選項規格。 如果找不到資料表,Azure Databricks 就會產生 TABLE_OR_VIEW_NOT_FOUND 錯誤。
-
選擇性參數,指定插入的目標數據分割。 您也只能部分指定分割區。
LOCAL
如果指定,它會導致
INPATH
針對本機文件系統解析 ,而不是預設文件系統,這通常是分散式記憶體。改寫
根據預設,新數據會附加至數據表。 如果使用
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