INSERT OVERWRITE DIRECTORY with Hive format

适用于:check marked yes 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,并指明分隔符、转义字符和空字符等。

  • file_format

    此插入的文件格式。 有效选项为 TEXTFILESEQUENCEFILERCFILEORCPARQUETAVRO。 还可以使用 INPUTFORMATOUTPUTFORMAT 指定你自己的输入和输出格式。 ROW FORMAT SERDE 只能与 TEXTFILESEQUENCEFILERCFILE 一起使用,而 ROW FORMAT DELIMITED 只能与 TEXTFILE 一起使用。

  • VALUES ( { value | NULL } [ , … ] ) [ , ( … ) ]

    要插入的值。 可以插入显式指定的值或 NULL。 必须使用逗号分隔子句中的每个值。 可以指定多个值集以插入多行。

  • 查询

    生成要插入的行的查询。 可采用以下格式之一:

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