什么';在HIVE中编写if/else if/else if/else的最佳方法是什么?
Hive使用IF(条件、表达式、表达式),因此当我想执行IF/else IF/else IF/else时,我必须执行以下操作:什么';在HIVE中编写if/else if/else if/else的最佳方法是什么?,hive,hql,Hive,Hql,Hive使用IF(条件、表达式、表达式),因此当我想执行IF/else IF/else IF/else时,我必须执行以下操作: IF(a, 1, IF(b, 2, IF(c, 3, 4))) 有没有更好的方法更具可读性 寻找与标准类似的东西 if (a) { 1 } else if (b) { 2 } else if (c) { 3 } else { 4 } 您可以对if-else场景使用Hive条件CASE-WHEN功能。CASE语句将为您提供更好的可读性和相同的功能 CA
IF(a, 1, IF(b, 2, IF(c, 3, 4)))
有没有更好的方法更具可读性
寻找与标准类似的东西
if (a) {
1
} else if (b) {
2
} else if (c) {
3
} else {
4
}
您可以对if-else场景使用Hive条件
CASE-WHEN
功能。CASE语句
将为您提供更好的可读性和相同的功能
CASE
WHEN (condition1) THEN result1
WHEN (condition2) THEN result2
WHEN (condition3) THEN result3
WHEN (condition4) THEN result4
ELSE result_default
END AS attribute_name
处理if-else的最佳方法是为特定列编写自定义UDF。在使用CASE-WHEN语句时,您可以很容易地实现这一点
CASE
WHEN a THEN 1
WHEN b THEN 2
WHEN c THEN 3
ELSE 4
END AS attribute_name
有关更多信息,请参阅官方文件,网址为IDK这将如何工作?如果我们已经有了函数,那么最好使用它。我会牺牲代码的可读性来提高执行速度。UDF通常跨越边界-从配置单元到UDF程序。如果可能的话,在配置单元中尝试在配置单元功能中完成此操作。如果需要更改,则在结束后会有一个额外的“)”