【发布时间】:2020-12-02 01:54:17
【问题描述】:
除了一列可以有不同的名称外,我有多个具有非常相似架构的表。 我想使用 Hive 进行一些复杂的计算,并希望为所有可能参数化的表提供一个代码。由于某些原因,我无法使用 Python、Scala 等语言对查询进行参数化,因此决定使用纯 Hive SQL。
我想有条件地选择适当的列,但似乎 Hive 会评估条件表达式/语句的所有部分,而不管条件如何。 我做错了什么?
DROP TABLE IF EXISTS `so_sample`;
CREATE TABLE `so_sample` (
`app_version` string
);
SELECT
if (true, app_version, software_version) AS firmware
FROM so_sample
;
输出:
错误:编译语句时出错:FAILED:SemanticException [错误 10004]:第 2:25 行无效的表别名或列引用“software_version”:(可能的列名称为:app_version)(状态=42000,代码=10004)
问候 帕维尔
【问题讨论】:
标签: hive