将配置单元查询结果输出为用引号括起的CSV [英] output hive query result as csv enclosed in quotes

查看:0
本文介绍了将配置单元查询结果输出为用引号括起的CSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须从CSV文件中的配置单元表导出数据,其中的字段用双引号括起来。

到目前为止,我可以使用以下查询生成不带引号的CSV

INSERT OVERWRITE DIRECTORY '/user/vikas/output'
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ','
SELECT QUERY

生成的输出如下所示

1,Vikas Saxena,Banking,JL5

但是,我需要输出为

"1","Vikas Saxena","Banking","JL5" 

我尝试将查询更改为

INSERT OVERWRITE DIRECTORY '/user/vikas/output'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = ",",
   "quoteChar"     = """,
   "escapeChar"    = "\"
)
SELECT QUERY

但显示错误

Error while compiling statement: FAILED: ParseException line 1:0 cannot recognize input near 'ROW' 'FORMAT' 'SERDE'

推荐答案

创建外部表:

CREATE EXTERNAL TABLE new_table(field1 type1, ...)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = """
)
STORED AS TEXTFILE
LOCATION '/user/vikas/output';

然后选择该表:

insert into new_table select * from original_table;

然后您的CSV位于磁盘上的/User/Vikas/Output

这篇关于将配置单元查询结果输出为用引号括起的CSV的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆