导出 Hive 查询结果

Posted

技术标签:

【中文标题】导出 Hive 查询结果【英文标题】:Export Hive Query Results 【发布时间】:2014-06-01 04:34:18 【问题描述】:

我是hive 的新手,可以使用一些技巧。

我正在尝试将来自hive 的查询结果导出为csv。当我尝试将它们从 CLI 中导出时:

hive -e 'select * from table'>OutPut.txt

我得到一个包含所有记录但没有列标题的文本文件。有没有人知道如何将带有列标题的查询结果导出到csv 文件?

如果我在 hue 中运行查询,然后将结果下载为 csv,我会得到一个带有列标题但没有记录的 csv。如果有人有关于如何从带有记录和列标题的色调下载查询结果的提示,我也将不胜感激。

【问题讨论】:

【参考方案1】:

要导出列标题,需要在hiverc文件中进行如下设置:

set hive.cli.print.header=true;

要将标题放入文件中,您可以尝试以下操作:

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

【讨论】:

您好 Visakh,感谢您就此事回复我。您的建议非常适合将列标题与数据一起作为文本文件包含在内。您能否建议我如何将“c”作为列的分隔符添加到导出的数据中? 我建议使用任何Unix 实用程序(例如sedawk)处理file_name.txt,以添加列名称的分隔符。 嗨,我也是这样做的,但结果我得到了列名以及每个列名的表名 我只想要列名【参考方案2】:

有列标题但缺少数据是一个已知问题:HUE-544

解决方法是使用Hue 3或更高版本或切换到HiveServer2(建议从CDH4.6开始)。

【讨论】:

以上是关于导出 Hive 查询结果的主要内容,如果未能解决你的问题,请参考以下文章

几种保存Hive查询结果的方法

sql Hive导出查询结果到文件

如何将配置单元查询结果导出到单个本地文件?

Hive编程指南学习03

[Hive]格式化输出 Hive 查询结果到 Excel

以增量方式导出 Hive 数据