AnalysisException:第1行出现语法错误:在Impala中使用abs()获取值的模数时出错



我想在使用Impala时取一个值的模,并且我知道abs()函数。当我像这样使用时

select abs(value) from table

它返回一个四舍五入到最近整数的值。这里找到的文档指出,我需要定义numeric_type。已经尝试过这个

select abs(float value) from table

但这给了我以下错误

AnalysisException: Syntax error in line 1: ... abs(float value) from table ^ Encountered: FLOAT Expected: ALL, CASE, CAST, DEFAULT, DISTINCT, EXISTS, FALSE, IF, INTERVAL, NOT, NULL, TRUNCATE, TRUE, IDENTIFIER CAUSED BY: Exception: Syntax error

你知道我如何设置abs()以返回float吗?

这应该适用于SELECT cast(Abs(-243.5) as float) AS AbsNum

我认为您误解了语法。您将函数调用为abs(val)。返回类型与输入类型相同。它应该适用于整数、小数和浮点运算。

如果您希望返回一个特定的类型,那么您需要传入该类型,也许可以转换为特定的类型。

文件是:

abs(numeric_type a(

目的:返回参数的绝对值。

返回类型:与输入值相同

诚然,这看起来确实应该是函数调用的一部分。但它实际上是在使用编程语言样式声明来显示预期的类型。

最新更新