載入資料

適用于:檢查標示為是 Databricks Runtime

從使用者指定的目錄或檔案將資料載入 Hive SerDe 資料表。 如果指定目錄,則會載入目錄中的所有檔案。 如果指定檔案,則只會載入單一檔案。 此外, LOAD DATA 語句會採用選擇性的資料分割規格。 指定資料分割時,當輸入來源是目錄) 或輸入來源為檔案) 載入目標資料表的資料分割時, ( (資料檔案。

如果快取資料表,命令會清除資料表的快取資料,以及參考資料表的所有相依專案。 下次存取資料表或相依專案時,快取將會延遲填滿。

語法

LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]

參數

  • 路徑

    檔案系統的路徑。 它可以是絕對路徑或相對路徑。

  • table_name

    識別要插入的資料表。 名稱不得包含 時態規格。 如果找不到資料表,Azure Databricks 就會引發 TABLE_OR_VIEW_NOT_FOUND 錯誤。

  • PARTITION 子句

    選擇性參數,指定插入的目標資料分割。 您也可以只部分指定分割區。

  • 當地

    如果指定,它會導致 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