INSERT OVERWRITE DIRECTORY

描述

INSERT OVERWRITE DIRECTORY 语句使用 Spark 文件格式或 Hive Serde 覆盖目录中的现有数据。必须启用 Hive 支持才能使用 Hive Serde。插入的行可以通过值表达式指定,也可以从查询结果中获取。

语法

INSERT OVERWRITE [ LOCAL ] DIRECTORY [ directory_path ]
    { spark_format | hive_format }
    { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }

其中 spark_format 定义为

USING file_format [ OPTIONS ( key = val [ , ... ] ) ]

hive_format 定义为

[ ROW FORMAT row_format ] [ STORED AS hive_serde ]

参数

示例

Spark 格式

INSERT OVERWRITE DIRECTORY '/tmp/destination'
    USING parquet
    OPTIONS (col1 1, col2 2, col3 'test')
    SELECT * FROM test_table;

INSERT OVERWRITE DIRECTORY
    USING parquet
    OPTIONS ('path' '/tmp/destination', col1 1, col2 2, col3 'test')
    SELECT * FROM test_table;

Hive 格式

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;