使用Hive我想在csv文件中获取查询结果,我也想得到标题。
要实现这一点,我正在执行:
hive -e '
use database;
set hive.cli.print.header=true;
select * from table;
' > /home/centos/user/result.csv
但是csv的第一行是:
table.field1_name,table.field2_name,table.field3_name
我怎样才能获得内容:
field1_name,field2_name,field3_name
答案 0 :(得分:11)
我只需要添加:
set hive.resultset.use.unique.column.names=false;
答案 1 :(得分:0)
body.send_keys(Keys.COMMAND + 't')
将完成这项工作。
假设sed
包含以下内容:
fun.csv
然后我在命令行中执行以下操作:
table.field1_name,table.field2_name,table.field3_name
现在sed -e 's/table.//g' < fun.csv > fun2.csv
有:
fun2.csv
答案 2 :(得分:0)
我用
hive -e 'set hive.cli.print.header=true; select * from database.table;' | sed 's/[\t]/,/g' > /your_path_to_csv
它适用于我。
答案 3 :(得分:0)
您可以使用tablename中的select column1,column2而不是select * from tablename,在这种情况下,tablename将不会添加到列名中。 在那种情况下,不需要给出sed命令。