LOAD DATA
Van toepassing op: 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 gebruikt de LOAD DATA
-instructie een optionele partitiespecificatie. 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 op een uitgestelde manier gevuld wanneer de tabel of de afhankelijkheden 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.
-
Hiermee geeft u de tabel aan waarnaar moet worden ingevoegd. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de tabel niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND-fout.
-
Een optionele parameter die een doelpartitie voor de invoeging specificeert. 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
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