如何从直线查询结果中的列名中删除表名

Posted

技术标签:

【中文标题】如何从直线查询结果中的列名中删除表名【英文标题】:how to remove table names from column names in beeline query results 【发布时间】:2020-04-16 15:54:50 【问题描述】:

我正在将直线查询输出保存到 csv 文件。但是 csv 文件中的列名也包含表名。例如,如果表名是sales,列名是Date,那么csv 的列名是sales.Date。我搜索了一下,在 Stack Overflow Hive - How to display Hive query results in the Command Line along with column names

中找到了一个非常好的解决方案

我尝试从 hive 终端执行以下操作,它可以工作。

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

但是,当我尝试从命令行将文件保存到 csv 时,它仍然会将表名放在列名中。

有什么办法可以避免吗?

从 CLI 使用的查询:-

bee_line --outputformat=csv2 --showHeader=true --silent=true -e "select * from salesdata.ales" >path-to-csv

其中 bee_line 是存储在 bash 配置文件中的完整连接字符串的别名。

【问题讨论】:

能否请您发布执行以将其存储到 csv 的直线命令? 【参考方案1】:

您可以使用--hiveconf 选项将配置单元属性设置为beeline 的参数。

你的命令看起来像,

bee_line --hiveconf hive.resultset.use.unique.column.names=false -outputformat=csv2 --showHeader=true --silent=true -e "select * from salesdata.ales" >path-to-csv

注意: Restricted properties 不能传递给此选项。

【讨论】:

以上是关于如何从直线查询结果中的列名中删除表名的主要内容,如果未能解决你的问题,请参考以下文章

05 MySQL之查询插入更新与删除

数据库表中操作语句

oracle查询怎么多个表的第一列

如何查询数据库中排名前几位的数据

Hive学习 第五课 修改表名修改列名添加列并删除或替换列。

oracle创建删除索引等操作