Определите язык для создания UDF в Hive - PullRequest
0 голосов
/ 07 мая 2019

Резюме: Озабоченность связана с созданием UDF в Hive.

Дорогие друзья! Поскольку я новичок в создании UDF в Hive (я читал об этом через Google, но не очень ясно представляю), первым делом я здесь определю, какой из них будет наилучшим из возможных, например Java / Python или любой другой, чтобы написать Uive UDFs.

Другое дело, на каком основании я должен анализировать? Какой весь параметр я должен искать?

Пожалуйста, учтите, что у меня есть несколько функций, описанных ниже, для которых нужно писать UDF. 1. Выбрать и сгруппировать предложения, необходимые для другой функции, когда «нет агрегации». 2. Чтобы вернуть операторы select и group by, когда требуется «агрегация». 3. Для vector_indexes используются строки SUM, LISTAGG для запроса сбора данных. 4. Вернуть предложение WHERE, используемое другой функцией. 5 Чтобы вернуть n-й элемент в строке через запятую. 6. Функция процентного значения для узких данных. 7. Чтобы вычислить процентиль для данного имени счетчика. Наряду с процентилем он также выводит количество выборок, использованных в расчете, пик и среднее значение.

Заранее большое спасибо,

1 Ответ

0 голосов
/ 07 мая 2019

Этот вопрос, вероятно, не входит в рекомендации, потому что вы спрашиваете мнение.

Сказав, что я бы предложил:

А) вы выбираете язык, который вы знаете.

B) если вы знаете и то, и другое, выбирайте в зависимости от необходимых вам функций.

C) рассмотреть производительность - я полагаю (но не могу подтвердить), что скомпилированный Java Jar будет работать без запуска среды выполнения Java только для поддержки этого модуля Java (он будет работать внутри экземпляра Java куста). Для запуска модуля Python необходимо создать новый интерпретатор Python и передать данные посредством межпроцессного взаимодействия. Таким образом, java возможно немного более эффективен, особенно если алгоритм прост. Однако, если вы не обрабатываете огромные наборы данных, вы, вероятно, даже не заметите.

Наконец, вы, вероятно, могли бы выполнять все функции, которые вы запрашивали, с помощью языка запросов Hive.

...