如何将Hive表导出为包含标题的CSV文件?

时间:2018-05-03 16:42:40

标签: hadoop hive

我使用此Hive查询将表导出为CSV文件。

hive -f mysql.sql

row format delimited fields terminated by ','
select * from Mydatabase,Mytable limit 100"

cat /LocalPath/* > /LocalPath/table.csv

但是,它不包括表列名。 如何在csv中导出列名?

show tablename ?

2 个答案:

答案 0 :(得分:2)

您应该在选择查询之前添加set hive.cli.print.header=true;以将列名称作为输出的第一行。输出看起来为Mytable.col1, Mytable.col2 ...

如果您不希望表名具有列名,请使用set hive.resultset.use.unique.column.names=false;。输出的第一行看起来像col1, col2 ...

答案 1 :(得分:0)

使用其他answer中建议的参数调用hive命令行可用于普通选择。因此,您可以提取列名并创建csv以开始,如下所示:

hive -S --hiveconf hive.cli.print.header=true --hiveconf hive.resultset.use.unique.column.names=false --database Mydatabase -e 'select * from Mytable limit 0;' > /LocalPath/table.csv

你可以运行实际数据提取部分的帖子,除了这次,记得附加到csv:

cat /LocalPath/* >> /LocalPath/table.csv ## From your question with >> for append