一、语法
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 ]
二、参数
| 参数 | 说明 |
| directory_path | 指定目标目录。LOCAL 关键字指定目录在本地文件系统上。 |
| file_format | 指定用于插入的文件格式:TEXT、CSV、JSON、PARQUET、ORC 等。 |
| OPTIONS | 指定文件格式写入的选项。 |
| hive_format | 指定 Hive 文件格式。 |
| row_format | 指定行格式。 |
| hive_serde | 文件格式:TEXTFILE、SEQUENCEFILE、RCFILE、ORC、PARQUET、AVRO。 |
三、示例
— 创建测试表CREATE EXTERNAL TABLE iod_test_table (id INT, name STRING) USING PARQUET LOCATION 'cosn://<your_bucket_name>/test_insert_overwrite_dir/iod_test_table';INSERT INTO iod_test_table VALUES (1, 'Alice'), (2, 'Bob');– Spark 格式: ParquetINSERT OVERWRITE DIRECTORY 'cosn://<your_bucket_name>/test_insert_overwrite_dir/output_parquet' USING parquet SELECT * FROM iod_test_table;– CSV 格式INSERT OVERWRITE DIRECTORY 'cosn://<your_bucket_name>/test_insert_overwrite_dir/output_csv' USING csv SELECT * FROM iod_test_table;– JSON 格式INSERT OVERWRITE DIRECTORY 'cosn://<your_bucket_name>/test_insert_overwrite_dir/output_json' USING json SELECT * FROM iod_test_table;– 带 OPTIONSINSERT OVERWRITE DIRECTORY USING parquet OPTIONS ('path' 'cosn://<your_bucket_name>/test_insert_overwrite_dir/output_parquet2') SELECT * FROM iod_test_table;