LÄSA IN DATA

Gäller för:check markerad ja Databricks Runtime

Läser in data i en Hive SerDe-tabell från den användardefinierade katalogen eller filen. Om en katalog anges läses alla filer från katalogen in. Om en fil anges läses endast den enskilda filen in. Dessutom tar -instruktionen LOAD DATA en valfri partitionsspecifikation. När en partition anges läses datafilerna (när indatakällan är en katalog) eller den enskilda filen (när indatakällan är en fil) in i partitionen i måltabellen.

Om tabellen cachelagras rensar kommandot cachelagrade data i tabellen och alla dess beroenden som refererar till den. Cachen fylls lazily när tabellen eller de beroende används nästa gång.

Syntax

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

Parametrar

  • Sökvägen

    Sökvägen till filsystemet. Det kan vara antingen en absolut eller en relativ sökväg.

  • Table_name

    Identifierar tabellen som ska infogas i. Namnet får inte innehålla en temporal specifikation. Om det inte går att hitta tabellen genererar Azure Databricks ett TABLE_OR_VIEW_NOT_FOUND fel.

  • PARTITION-sats

    En valfri parameter som anger en målpartition för infogningen. Du kan också bara delvis ange partitionen.

  • LOKALA

    Om det anges orsakar INPATH det att matchas mot det lokala filsystemet, i stället för standardfilsystemet, som vanligtvis är en distribuerad lagring.

  • SKRIV ÖVER

    Som standard läggs nya data till i tabellen. Om OVERWRITE används skrivs tabellen i stället över med nya data.

Exempel

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