我使用此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 ?
答案 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