背景:
作为现代化工作的一部分,我正在尝试将一个大型存储过程转换为hiveql脚本。hiveql脚本作为配置单元活动的一部分,每当从azure数据工厂触发管道时,都会在azure hdinsight集群上运行。
我试图转换的存储过程中有许多变量是使用“declare”语句声明的。例如:
DECLARE @Variable1 INT;
这些变量中的值是使用select语句设置的。例如:
SELECT @Variable1 = ColumnName1 FROM Table_Name;
这些变量在整个存储过程中引用如下:
SELECT * FROM Some_Table where ColumeName < @Variable1
以及许多不可能进行子查询的复杂场景。
在hiveql中如何执行相同的操作?是否有任何方法可以声明、修改和使用hiveql脚本中的变量?
1条答案
按热度按时间ghhaqwfi1#
HiveQL
可惜不是程序语言。不能使用这样的变量。
中的变量
HiveQL
只是文本替换,它们不是按字面意义计算和替换的。使用一些shell脚本或python等,或者尝试hpl/sql
相关答案:https://stackoverflow.com/a/37821218/2700344 还有这个:https://stackoverflow.com/a/51492264/2700344 -请阅读以更好地了解变量替换在hiveql中的工作原理