如何将头部导出到csv的hive表

时间:2018-03-21 12:45:19

标签: csv hive hiveql

要将配置单元数据导出到csv,请使用以下脚本:

  

请注意,这只是一个例子:

#!/bin/bash
hive -e "insert overwrite local directory '/tmp/'
row format delimited fields terminated by ','
select * from Mydatabase,Mytable limit 10"
> /tmp/table.csv

我在本地路径中获取了一个csv文件:/ tmp /,它看起来像:

2017-07-04 12:58:05.0,MB0_CLI_2,29353,0982,SAIE,MNIT-BM,-,-
2017-07-04 12:56:07.0,MBUD00_CLI_2,629353,662982,SAE,MBEINIT-BM,-,-
2017-07-04 12:56:46.0,MBUDLI_2,618,65530,SAISIE,MBUIT-BA,-,-
2017-07-04 12:56:13.0,82_CLI_3,65082954,47857,UNAGE,-,PARERS,-
2017-07-04 12:56:05.0,822I_3,654,857,UNDGE,-,PAIRS,-
2017-07-04 12:59:28.0,823,65084,6926461,UNDNED_AAGE,-,PLIERS,-
2017-07-04 12:59:05.0,82200_CLI_3,65954,69461,UNNED_AFAGE,-,PULIERS,-
2017-07-04 12:56:46.0,MBUDLI_2,618,65530,SAISIE,MBUIT-BA,-,-
2017-07-04 12:56:13.0,82_CLI_3,65082954,47857,UNAGE,-,PARERS,-
2017-07-04 12:56:46.0,MBUDLI_2,618,65530,SAISIE,MBUIT-BA,-,-

问题是csv文件没有导入每列的头部

如何将hive表导出到带有列标题的csv文件中?

1 个答案:

答案 0 :(得分:0)

我是这样做的。你可以用分号分隔更多的命令。 Sed是一个命令,可以将空白和制表符(默认分隔符)更改为逗号。结果是一个名为的csv文件; tableName.csv。

hive -e 'set hive.execution.engine=tez; set hive.cli.print.header=true; select * from <TableName>' | sed 's/,/ /g' | sed 's/[\t]/,/g'  > /tmp/tableName.csv