HiveQL中的变量

问题描述 投票:1回答:1

背景:

作为现代化工作的一部分,我正在尝试将大型存储过程转换为HiveQL脚本。每当从Azure Data Factory触发管道时,作为Hive活动的一部分的HiveQL脚本就在Azure HDInsight群集上运行。

我正在尝试转换的存储过程具有许多使用'DECLARE'语句声明的变量。例如:

DECLARE @Variable1 INT;

这些变量中的值是使用SELECT语句设置的。例如:

SELECT  @Variable1 = ColumnName1 FROM Table_Name;

并且这些变量在整个存储过程中都是这样引用的:

SELECT * FROM Some_Table where ColumeName < @Variable1

以及许多无法进行子查询的复杂方案。

我如何在HiveQL中执行相同的操作?是否可以在HiveQL脚本中声明,修改和使用变量?

variables hive hiveql azure-data-factory hdinsight
1个回答
2
投票

HiveQL不幸不是过程语言。

您不能使用这样的变量。

HiveQL中的变量只是文本替换,它们没有被计算,而是按字面意义被替换。

使用一些shell脚本或python等,或尝试HPL/SQL

[相关答案:https://stackoverflow.com/a/37821218/2700344和这个:https://stackoverflow.com/a/51492264/2700344-请阅读以更好地理解hiveql中变量替换的工作原理

© www.soinside.com 2019 - 2024. All rights reserved.