LOAD DATA

Platí pro: zaškrtnutí označeného ano Databricks Runtime

Načte data do tabulky Hive SerDe ze zadaného adresáře nebo souboru uživatele. Pokud je zadaný adresář, načtou se všechny soubory z adresáře. Pokud je zadaný soubor, načte se pouze jeden soubor. LOAD DATA Příkaz navíc přebírá volitelnou specifikaci oddílu. Pokud je zadaný oddíl, datové soubory (pokud je vstupním zdrojem adresář) nebo jeden soubor (pokud je vstupním zdrojem soubor) se načtou do oddílu cílové tabulky.

Pokud je tabulka uložená v mezipaměti, příkaz vymaže data tabulky uložená v mezipaměti a všechny její závislé objekty, které na ni odkazují. Mezipaměť bude opožděně vyplněna, když se tabulka nebo závislé osoby při příštím přístupu k tabulce.

Syntaxe

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

Parametry

  • path

    Cesta k systému souborů. Může to být absolutní nebo relativní cesta.

  • table_name

    Identifikuje tabulku, do které se má vložit. Název nesmí obsahovat dočasnou specifikaci. Pokud tabulku nenajdete, Azure Databricks vyvolá TABLE_OR_VIEW_NOT_FOUND chybu.

  • Klauzule PARTITION

    Volitelný parametr, který určuje cílový oddíl pro vložení. Oddíl můžete také zadat pouze částečně.

  • MÍSTNÍ

    Pokud je zadáno, způsobí INPATH , že se přeloží proti místnímu systému souborů místo výchozího systému souborů, což je obvykle distribuované úložiště.

  • PŘEPSAT

    Ve výchozím nastavení se k tabulce připojí nová data. Pokud OVERWRITE se použije, tabulka se místo toho přepíše novými daty.

Příklady

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