Condividi tramite


LOAD DATA

Si applica a: segno di spunta sì Databricks Runtime

Carica i dati in una tabella SerDe Hive dalla directory o dal file specificato dall'utente. Se viene specificata una directory, vengono caricati tutti i file della directory. Se viene specificato un file, viene caricato solo il singolo file. Inoltre, l'istruzione LOAD DATA accetta una specifica di partizione facoltativa. Quando si specifica una partizione, i file di dati (quando l'origine di input è una directory) o il singolo file (quando l'origine di input è un file) vengono caricati nella partizione della tabella di destinazione.

Se la tabella viene memorizzata nella cache, il comando cancella i dati memorizzati nella cache della tabella e tutti i relativi dipendenti che vi fanno riferimento. La cache verrà riempita la prossima volta in cui si accede alla tabella o ai dipendenti.

Sintassi

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

Parametri

  • path

    Percorso del file system. Può essere un percorso assoluto o relativo.

  • table_name

    Identifica la tabella in cui inserire. Il nome non deve includere una specifica temporale o una specifica delle opzioni. Se la tabella non è stata trovata, Azure Databricks genera un errore TABLE_OR_VIEW_NOT_FOUND.

  • Clausola PARTITION

    Parametro facoltativo che specifica una partizione di destinazione per l'inserimento. È anche possibile specificare solo parzialmente la partizione.

  • LOCAL

    Se specificato, fa sì che l'oggetto INPATH venga risolto nel file system locale, anziché nel file system predefinito, che in genere è una risorsa di archiviazione distribuita.

  • SOVRASCRIVERE

    Per impostazione predefinita, i nuovi dati vengono aggiunti alla tabella. Se OVERWRITE viene utilizzato, la tabella viene invece sovrascritta con nuovi dati.

Esempi

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