如何在Hive中将Employee列重命名为Employee(Emp)?
在Hive中实现列别名包含括号的解决方案
这个需求完全可以实现,你之前的SQL失效是因为Hive会把括号当成语法结构的一部分,而非别名的组成部分,下面给你两种可行的解决方法:
用反引号包裹别名
Hive支持用反引号(`)转义包含特殊字符的标识符,直接把带括号的别名放在反引号里即可,执行以下SQL:SELECT Employee as `Employee(Emp)` FROM Emp_Table;这种方法不需要修改任何配置,是最通用的解决方案。
用双引号包裹别名(需修改配置)
如果习惯用双引号,需要先设置Hive的配置参数hive.support.quoted.identifiers为column,之后就可以用双引号包裹别名:SET hive.support.quoted.identifiers=column; SELECT Employee as "Employee(Emp)" FROM Emp_Table;这个配置的作用是让Hive将双引号内的内容识别为列名或别名,而非字符串常量。
执行任意一种方法后,查询返回的列名都会是你想要的Employee(Emp)。
内容的提问来源于stack exchange,提问作者Yes_par_row
相关产品推荐
相关产品推荐

