共用方式為


LOAD DATA

適用於:核取記號為「是」 Databricks Runtime

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

如果 table 已被快取,則該命令會清除 table 的快取數據及其所有依賴此數據的相依專案。 下次存取 table 或相依專案時,快取將會延遲填滿。

語法

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

Parameters

  • path

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

  • table_name

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

  • PARTITION 子句

    選擇性參數,指定 insert的目標 partition。 您也可以只部分指定 partition。

  • LOCAL

    如果指定,它會導致 INPATH 針對本機文件系統解析 ,而不是預設文件系統,這通常是分散式記憶體。

  • 改寫

    根據預設,新資料會附加至 table。 如果使用 OVERWRITE,則會用新的數據覆寫 table。

範例

-- 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