hive,如何在输出查询时获取列名(而不是表名.列名)

rxztt3cl  于 2021-06-26  发布在  Hive
关注(0)|答案(4)|浏览(1354)

使用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
iyfjxgzm

iyfjxgzm1#

您可以使用select column1,column2 from tablename而不是select*from tablename,在这种情况下,tablename将不会添加到列名中。在这种情况下,不需要发出sed命令。

clj7thdc

clj7thdc2#

sed 我会做的。
假设 fun.csv 包含以下内容:

table.field1_name,table.field2_name,table.field3_name

然后在命令行中执行以下操作:

sed -e 's/table.//g' < fun.csv > fun2.csv

现在 fun2.csv 有:

field1_name,field2_name,field3_name
ikfrs5lh

ikfrs5lh3#

我只想补充一下:

set hive.resultset.use.unique.column.names=false;
yrdbyhpb

yrdbyhpb4#

我用

hive -e 'set hive.cli.print.header=true; select * from database.table;' | sed 's/[\t]/,/g' > /your_path_to_csv

它对我很有效。
引用:配置单元查询输出分隔符

相关问题