You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hive导出SQL查询结果至CSV:如何去除表头与引号?

Hive导出无表头、无引号CSV的解决方法

方法一:调整Hive CLI配置直接导出

在执行导出命令前,先设置两个核心配置项,关闭表头输出和引号包裹:

set hive.cli.print.header=false;
set hive.csv.output.quotes=false;
!outputformat csv
!record /export/homes/ajain/Automation.BankA_QA_23June.csv
select * from system.catalog limit 10;
!record

配置生效后,导出的CSV将不再包含列名表头,数据也不会被引号包裹。注意:!record命令自带的Saving all output to...提示行仍会存在,若要彻底去掉,可参考下面的方法二。

方法二:用INSERT OVERWRITE直接生成纯净文件(推荐)

这种方式能完全规避额外提示行,精准控制输出格式:

set hive.cli.print.header=false;
set hive.csv.output.quotes=false;
set hive.exec.compress.output=false; -- 确保输出不压缩

INSERT OVERWRITE LOCAL DIRECTORY '/export/homes/ajain/temp_csv'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
select * from system.catalog limit 10;

执行后,Hive会在指定目录生成多个输出文件(对应每个Map任务),用以下命令合并成单个CSV:

cat /export/homes/ajain/temp_csv/* > /export/homes/ajain/Automation.BankA_QA_23June.csv
rm -rf /export/homes/ajain/temp_csv

最终得到的文件就是纯数据内容,逗号分隔,无表头、无引号、无额外提示。

方法三:已导出文件的事后清洗(应急方案)

如果已经得到带冗余内容的文件,直接用Linux命令处理:

# 删除前两行(提示行+表头),同时去掉所有单引号
sed '1,2d;s/'\''//g' /export/homes/ajain/Automation.BankA_QA_23June.csv > /export/homes/ajain/cleaned_output.csv

内容的提问来源于stack exchange,提问作者Ashish Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:04:53