主页 > 其他  > 

【踩坑实录】-BoundaryAmountmustbeapositiveinteger,providedamou

【踩坑实录】-BoundaryAmountmustbeapositiveinteger,providedamou

目录

一、背景

二、分析问题

1.查询的sql内容

2.分析报错内容

三、解决方法


一、背景

hive执行sql发生报错,报错内容:

execute sql error: Error while compiling statement: FAILED: SemanticException Window Frame Boundary Amount must be a positive integer, provided amount is: 0

二、分析问题 1.查询的sql内容 select col_str1 ,col_str2 ,create_time ,sum(col_int1) over(partition by col_str1,col_str2 order by create_time rows between 6 preceding and 0 following) as new_col from db_name.table_name ; 2.分析报错内容

由关键词Window可以知道问题大约是出在开窗函数上面。

错误信息 "Boundary Amount must be a positive integer, provided amount is: 0" 表示边界金额必须是一个正整数,但提供的金额为0。‌

在许多编程场景中,边界参数(如数组大小、集合容量等)必须是一个正整数,不能为0或负数。如果参数值为0,程序会抛出 IllegalArgumentException 异常,提示边界值必须是正数。

三、解决方法

确保在调用需要正数参数的方法时,传入的参数值大于0。

修改后的sql内容

select col_str1 ,col_str2 ,create_time ,sum(col_int1) over(partition by col_str1,col_str2 order by create_time rows between 6 preceding and 1 following) as new_col from db_name.table_name

执行后成功啦!!!

标签:

【踩坑实录】-BoundaryAmountmustbeapositiveinteger,providedamou由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【踩坑实录】-BoundaryAmountmustbeapositiveinteger,providedamou