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


INSERT OVERWRITE DIRECTORY с форматом Hive

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

Перезаписывает существующие данные в каталоге новыми значениями с помощью Hive SerDe. Чтобы использовать эту команду, необходимо включить поддержку Hive. Вставляемые строки указываются по выражениям значений или результату запроса.

Синтаксис

INSERT OVERWRITE [ LOCAL ] DIRECTORY directory_path
    [ ROW FORMAT row_format ] [ STORED AS file_format ]
    { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }

Параметры

  • directory_path

    Каталог назначения. Ключевое слово LOCAL обозначает, что каталог находится в локальной файловой системе.

  • row_format

    Формат строки для этой вставки. Поддерживаются предложения SERDE и DELIMITED. предложение SERDE можно использовать для указания пользовательского SerDe для этой вставки. Вместо этого можно с помощью предложения DELIMITEDуказать собственный элемент SerDe и значения разделителя, escape-символа, нуль-символа и так далее.

  • file_format

    Формат файла для этой вставки. Допустимые параметры: TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUET и AVRO. Можно также указать собственные форматы входных и выходных данных с помощью INPUTFORMAT и OUTPUTFORMAT. ROW FORMAT SERDE может использоваться только в сочетании с TEXTFILE, SEQUENCEFILE или RCFILE, а ROW FORMAT DELIMITED — только с TEXTFILE.

  • VALUES ( { значение | NULL } [ , ... ] ) [ , ( … ) ]

    Вставляемые значения. Можно вставить явно указанное значение или NULL. Для разделения значений в предложении используйте запятую. Для вставки нескольких строк можно указать несколько наборов значений.

  • query

    Запрос, создающий вставляемые строки. Один из следующих форматов:

    • Инструкция SELECT
    • Инструкция TABLE
    • Инструкция FROM

Примеры

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
    STORED AS orc
    SELECT * FROM test_table;

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    SELECT * FROM test_table;