AnalysisException:第 1 行中的语法错误:在 Impala 中使用 abs() 取模值时出错
AnalysisException: Syntax error in line 1: error when taking modulus of a value using abs() in Impala
我想在使用 Impala 时取一个值的模,我知道 abs()
函数。当我使用它时,就像这样
select abs(value) from table
它return是一个四舍五入到最接近的整数的值。找到的文档 here 声明我需要定义 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()
设置为 return 和 float
吗?
我认为您误解了语法。您将该函数称为 abs(val)
。 return 类型与输入类型相同。它应该适用于整数、小数和浮点数。
如果您希望特定类型被 returned,那么您需要传入该类型,也许转换为特定类型。
文档是:
abs(numeric_type a)
Purpose: Returns the absolute value of the argument.
Return type: Same as the input value
不可否认,这看起来确实应该是函数调用的一部分。但它实际上是使用编程语言风格的声明来显示预期的类型。
这应该有效 SELECT cast(Abs(-243.5) as float) AS AbsNum
我想在使用 Impala 时取一个值的模,我知道 abs()
函数。当我使用它时,就像这样
select abs(value) from table
它return是一个四舍五入到最接近的整数的值。找到的文档 here 声明我需要定义 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()
设置为 return 和 float
吗?
我认为您误解了语法。您将该函数称为 abs(val)
。 return 类型与输入类型相同。它应该适用于整数、小数和浮点数。
如果您希望特定类型被 returned,那么您需要传入该类型,也许转换为特定类型。
文档是:
abs(numeric_type a)
Purpose: Returns the absolute value of the argument.
Return type: Same as the input value
不可否认,这看起来确实应该是函数调用的一部分。但它实际上是使用编程语言风格的声明来显示预期的类型。
这应该有效 SELECT cast(Abs(-243.5) as float) AS AbsNum