Delen via


LOAD DATA

Van toepassing op: vinkje als ja aan Databricks Runtime

Laadt de gegevens in een Hive SerDe-tabel vanuit de door de gebruiker opgegeven map of bestand. Als er een map is opgegeven, worden alle bestanden uit de map geladen. Als er een bestand is opgegeven, wordt alleen het ene bestand geladen. Daarnaast heeft de LOAD DATA instructie een optionele partitiespecificatie nodig. Wanneer een partitie is opgegeven, worden de gegevensbestanden (wanneer de invoerbron een map is) of het enkele bestand (wanneer de invoerbron een bestand is) in de partitie van de doeltabel geladen.

Als de tabel in de cache is opgeslagen, worden met de opdracht gegevens in de cache van de tabel en alle afhankelijke gegevens gewist die ernaar verwijzen. De cache wordt lazily gevuld wanneer de tabel of de afhankelijke items de volgende keer worden geopend.

Syntaxis

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

Parameters

  • path

    Pad van het bestandssysteem. Dit kan een absoluut of een relatief pad zijn.

  • table_name

    Hiermee geeft u de tabel aan waarnaar moet worden ingevoegd. De naam mag geen tijdelijke specificatie bevatten. Als de tabel niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND fout.

  • PARTITION-component

    Een optionele parameter waarmee een doelpartitie voor de invoegpositie wordt opgegeven. U kunt ook slechts gedeeltelijk de partitie opgeven.

  • LOKAAL

    Indien opgegeven, zorgt dit ervoor dat de INPATH oplossing wordt omgezet op basis van het lokale bestandssysteem, in plaats van het standaardbestandssysteem, wat doorgaans een gedistribueerde opslag is.

  • OVERSCHRIJVEN

    Nieuwe gegevens worden standaard toegevoegd aan de tabel. Als OVERWRITE deze wordt gebruikt, wordt de tabel in plaats daarvan overschreven met nieuwe gegevens.

Voorbeelden

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