HiveQL 中的变量



背景:

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

我尝试转换的存储过程有很多使用"DECLARE"语句声明的变量。例如:

DECLARE @Variable1 INT;

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

SELECT  @Variable1 = ColumnName1 FROM Table_Name;

这些变量在整个存储过程中被引用,如下所示:

SELECT * FROM Some_Table where ColumeName < @Variable1

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

如何在 HiveQL 中执行相同的操作?有没有办法在 HiveQL 脚本中声明、修改和使用变量?

不幸的是HiveQL不是过程语言。

您不能使用这样的变量。

HiveQL中的变量只是文本替换,它们不是按字面意思计算和替换的。

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

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

相关内容

  • 没有找到相关文章

最新更新