【发布时间】:2017-01-29 07:01:11
【问题描述】:
我必须从 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'
【问题讨论】:
-
那么你为什么不直接创建一个映射到该目录的EXTERNAL TABLE,在其中插入,然后删除表?
-
使用 hive concat。即 concat("\"",col,"\"")
标签: csv hive export-to-csv