Hive CLI列分隔符

时间:2014-06-10 00:21:15

标签: hive hiveql

嗨,我是hive的新手,肯定会欣赏一些提示。

我正在尝试在cli中将hive查询结果导出为csv。

我可以使用以下方式将它们导出为文本:

hive -e'set hive.cli.print.header = true; SELECT * FROM TABLE_NAME LIMIT 0;' > /file_path/file_name.txt

任何人都可以建议我需要添加的内容,以便使用','

分隔列

3 个答案:

答案 0 :(得分:2)

这是你可以直接从蜂巢中进行的,而不是通过sed路线。

SET hive.exec.compress.output=FALSE;
SET hive.cli.print.header=TRUE;
INSERT overwrite local directory '/file_path/file_name.txt' row format delimited fields terminated by ',' SELECT * FROM TABLE_NAME LIMIT 1;

答案 1 :(得分:0)

您可以像这样在查询中使用concat_ws()函数

对于SELECT *

select concat_ws(',',*) from <table-name>;

或者如果您想要特定的列

select concat_ws(',', col_1, col_2, col_3...) from <table-name>;

答案 2 :(得分:-1)

hive -e 'set hive.cli.print.header=true; SELECT * FROM TABLE_NAME LIMIT 0;' > /file_path/file_name.txt  && cat /file_path/file_name.txt  | sed -e 's/\s/,/g' > /file_path/file_name.formatted.txt 

一旦你的查询创建输出文件,然后使用sed用“,”替换空格,如上所示。