Как написать UDF (hive / spark-scala) для возврата значения из запроса улья

#apache-spark-sql #user-defined-functions

#apache-spark-sql #определяемые пользователем функции

Вопрос:

Я пытаюсь написать UDF улья, используя Scala. Этот UDF должен выполнить запрос к другой таблице улья и вернуть полученное значение

Например. У меня есть основная таблица в hive со столбцами emp_id, start_date, end_date, salary. Я пытаюсь создать udf улья, используя scala для создания функции (getSal), в которой я могу передать идентификатор и некоторую дату и получить эффективную зарплату для этого идентификатора в другом запросе улья как select *, getSal(emp_id,passed_date) в качестве зарплаты из некоторой таблицы;

Можете ли вы сказать мне, как этого добиться?

примечание — я могу получить подробную информацию, соединив мою таблицу с главной таблицей и выполнив предложение between, но хотел бы изучить решение UDF.

Комментарии:

1. Привет @shah, фантом прав, это невозможно. Основная цель UDF — выполнять вычисления / обработку, чтобы сделать ваш код удобным для обслуживания и более удобным для чтения

2. Ответ «Нет» также является ответом.

Ответ №1:

Это просто невозможно и не желательно, если подумать об этом с точки зрения производительности. По крайней мере, если я понял ваш вопрос, тем более из названия.