GEGEVENS LADEN
Van toepassing op: Databricks Runtime
Laadt de gegevens in een Hive SerDe-tabel vanuit de door de gebruiker opgegeven map of bestand. Als een map is opgegeven, worden alle bestanden uit de map geladen. Als er een bestand is opgegeven, wordt alleen het ene bestand geladen. Daarnaast wordt voor de LOAD DATA
instructie een optionele partitiespecificatie gebruikt. Wanneer een partitie wordt 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 gewist van de tabel en alle afhankelijke items die ernaar verwijzen. De cache wordt langzaam gevuld wanneer de volgende keer de tabel of de afhankelijke items worden geopend.
Syntaxis
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
Parameters
Pad
Pad van het bestandssysteem. Dit kan een absoluut of een relatief pad zijn.
-
Identificeert de tabel die 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 .
-
Een optionele parameter waarmee een doelpartitie voor de insert wordt opgegeven. U kunt de partitie ook slechts gedeeltelijk opgeven.
LOKALE
Indien opgegeven, zorgt dit ervoor dat de
INPATH
wordt omgezet op basis van het lokale bestandssysteem, in plaats van het standaardbestandssysteem, dat meestal een gedistribueerde opslag is.OVERSCHRIJVEN
Standaard worden nieuwe gegevens aan de tabel toegevoegd. Als
OVERWRITE
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