我想从传递的配置单元变量中减去一个数字。例如:
SET hiveconf:window_size = 12
SELECT id , max(marks) OVER(ORDER BY Date_time ROWS BETWEEN ${hiveconf:window_size}-1 PRECEDING AND CURRENT ROW) from Students;但是窗口函数中的${hiveconf:window_size}-1给出了错误。
有没有人能对此有什么建议?
发布于 2018-08-14 20:39:32
它不喜欢在边界之间进行行的内联计算。执行查询前减去1。
这将会起作用:
SET hiveconf:window_size=11;
SELECT id , max(marks) OVER(ORDER BY Date_time ROWS BETWEEN ${hiveconf:window_size} PRECEDING AND CURRENT ROW) from Students
;或者,您可以在shell中计算它,并将其作为变量传递给配置单元脚本。请看这里如何从外壳传递变量:https://stackoverflow.com/a/37821218/2700344
https://stackoverflow.com/questions/51840044
复制相似问题