Переменные в HiveQL - PullRequest
       39

Переменные в HiveQL

1 голос
/ 10 октября 2019

Справочная информация:

В рамках усилий по модернизации я пытаюсь преобразовать большую хранимую процедуру в скрипт HiveQL. Сценарий HiveQL, являющийся частью деятельности куста, запускается в кластере Azure HDInsight при каждом запуске конвейера из фабрики данных Azure.

Хранимая процедура, которую я пытаюсь преобразовать, содержит множество переменных, объявленных с использованием команды "DECLARE"заявления. Например:

DECLARE @Variable1 INT;

Значения в этих переменных устанавливаются с помощью операторов SELECT. Например:

SELECT  @Variable1 = ColumnName1 FROM Table_Name;

, и на эти переменные ссылаются во всей хранимой процедуре, например:

SELECT * FROM Some_Table where ColumeName < @Variable1

и во многих сложных сценариях, где подзапрос невозможен.

Как я могу сделать то же самое в HiveQL? Есть ли способ объявить, изменить и использовать переменные в скрипте HiveQL?

1 Ответ

2 голосов
/ 11 октября 2019

HiveQL к сожалению, это не язык процедур.

Вы не можете использовать такие переменные.

Переменные в HiveQL являются просто заменой текста, они не рассчитываются и заменяются буквально.

Используйте какой-нибудь сценарий оболочки или Python и т. Д. Или попробуйте HPL / SQL

Связанный ответ: https://stackoverflow.com/a/37821218/2700344 и этот: https://stackoverflow.com/a/51492264/2700344- читайте для лучшего понимания, как подстановка переменных работает в hiveql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...