如何从直线查询结果中的列名称中删除 table 个名称

how to remove table names from column names in beeline query results

我正在将直线查询输出保存到 csv 文件。但是,csv 文件中的列名称也包含 table 名称。例如,如果 table 名称为 sales 并且列名称为 Date,则 csv 的列名称为 sales.Date。我四处搜索,在 Stack overflow

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

我尝试从 Hive 终端执行以下操作并且有效。

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

然而,当我尝试从命令行将文件保存到 csv 时,它仍然将 table 名称放在列名称中。

有什么办法可以避免吗?

从 CLI 使用的查询:-

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

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

您可以使用 --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 不能传递给这个选项。