Поделиться через


LOAD DATA.

Область применения: флажок Databricks Runtime

Загружает данные в таблицу Hive SerDe из указанного пользователем каталога или файла. Если указан каталог, то загружаются все файлы из каталога. Если указан файл, загружается только один файл. Кроме того, инструкция LOAD DATA принимает дополнительную спецификацию секции. Если указана секция, загрузка файлов данных (когда источником входных данных является каталог) или отдельного файла (когда источником входных данных является файл) выполняется в секцию целевой таблицы.

Если таблица кэшируется, команда очищает кэшированные данные таблицы и все зависимые от нее параметры. Кэш будет медленно заполняться при следующем обращении к таблице или зависимостям.

Синтаксис

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

Параметры

  • path

    Путь к файловой системе. Путь может быть как абсолютным, так и относительным.

  • table_name

    Определяет таблицу, в которую выполняется вставка. Имя не должно содержать временную спецификацию. Если не удается найти таблицу Azure Databricks, возникает ошибка TABLE_OR_VIEW_NOT_FOUND .

  • Предложение PARTITION

    Необязательный параметр, указывающий целевую секцию для вставки. Вы также можете указать секцию лишь частично.

  • LOCAL

    Если этот параметр задан, то INPATH разрешается в локальную файловую систему, а не в файловую систему по умолчанию, которая обычно является распределенным хранилищем.

  • OVERWRITE

    По умолчанию новые данные добавляются в таблицу. Если используется параметр OVERWRITE, то существующие данные в таблице перезаписываются новыми данными.

Примеры

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