【发布时间】:2013-05-29 07:19:40
【问题描述】:
Hive 支持条件语句 - https://cwiki.apache.org/Hive/languagemanual-udf.html#LanguageManualUDF-ConditionalFunctions
但是,我希望使用 block 条件语句。例如,我有两个表 A 和 B 具有相似的列(尽管列名不相同)。我希望从 A 和 B 创建一个新表,以便 B 具有更高的优先级。因此,如果 B 中存在一行,我希望从 B 中选择它,否则从 A 中选择该行。 即
SELECT
IF (B.id<>NULL,
(B.id as id,
B.value1 as value),
(A.id as id,
a.value2 as value))
FROM A FULL OUTER JOIN B ON (A.id = B.id)
上述查询无效。是因为 Hive 不支持块条件语句吗?如何实现上述功能?
【问题讨论】: