INSERT OVERWRITE DIRECTORY with Hive format
适用于: 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
此插入的文件格式。 有效选项为
TEXTFILE
、SEQUENCEFILE
、RCFILE
、ORC
、PARQUET
和AVRO
。 还可以使用INPUTFORMAT
和OUTPUTFORMAT
指定你自己的输入和输出格式。ROW FORMAT SERDE
只能与TEXTFILE
、SEQUENCEFILE
或RCFILE
一起使用,而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;