插入覆盖目录

描述

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;