Freigeben über


LOAD DATA

Gilt für: Häkchen Databricks Runtime

Lädt die Daten aus dem vom Benutzer angegebenen Verzeichnis oder der angegebenen Datei in eine Hive SerDe-Tabelle (Serialisierung/Deserialisierung). Wenn ein Verzeichnis angegeben wird, werden alle Dateien aus dem Verzeichnis geladen. Wenn eine Datei angegeben wird, wird nur die einzelne Datei geladen. Darüber hinaus verwendet die LOAD DATA-Anweisung eine optionale Partitionsangabe. Wenn eine Partition angegeben wird, werden die Datendateien (wenn die Eingabequelle ein Verzeichnis ist) oder die einzelne Datei (wenn die Eingabequelle eine Datei ist) in die Partition der Zieltabelle geladen.

Wenn die Tabelle zwischengespeichert wurde, löscht der Befehl zwischengespeicherte Daten der Tabelle und alle abhängigen Daten, die darauf verweisen. Der Cache wird beim nächsten Zugriff auf die Tabelle oder die abhängigen Daten verzögert gefüllt.

Syntax

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

Parameter

  • path

    Pfad des Dateisystems. Dies kann entweder ein absoluter oder relativer Pfad sein.

  • table_name

    Gibt die Tabelle an, in die eingefügt werden soll. Der Name darf keine temporale Spezifikation enthalten. Wenn die Tabelle nicht gefunden werden kann, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus.

  • PARTITION-Klausel

    Ein optionaler Parameter, der eine Zielpartition für die Einfügung angibt. Sie können die Partition auch nur teilweise angeben.

  • LOCAL

    Falls angegeben, wird INPATH für das lokale Dateisystem aufgelöst, anstatt für das Standarddateisystem, bei dem es sich normalerweise um einen verteilten Speicher handelt.

  • OVERWRITE

    Standardmäßig werden neue Daten an die Tabelle angefügt. Wenn OVERWRITE verwendet wird, wird die Tabelle stattdessen mit neuen Daten überschrieben.

Beispiele

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