LOAD DATA
Область применения: Databricks Runtime
Загружает данные в таблицу Hive SerDe из указанного пользователем каталога или файла. Если указан каталог, то загружаются все файлы из каталога. Если указан файл, загружается только один файл. Кроме того, оператор LOAD DATA
принимает необязательную спецификацию раздела. При указании секции файлы данных (когда входной источник является каталогом) или один файл (когда входной источник является файлом), загружаются в секцию целевой таблицы.
Если таблица кэшируется, команда очищает кэшированные данные таблицы и все зависимые от нее данные. Кэш будет заполнен по мере необходимости, когда в следующий раз будет осуществлен доступ к таблице или её зависимым объектам.
Синтаксис
LOAD DATA [ LOCAL ] INPATH path [ OVERWRITE ] INTO TABLE table_name [ PARTITION clause ]
Параметры
path
Путь к файловой системе. Путь может быть как абсолютным, так и относительным.
-
Определяет таблицу для вставки. Имя не должно включать темпоральную спецификацию или спецификацию параметров. Если таблица не найдена, Azure Databricks вызывает ошибку TABLE_OR_VIEW_NOT_FOUND.
-
Необязательный параметр, указывающий целевую секцию для вставки. Можно также частично указать секцию.
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