首页 > 解决方案 > 确定在 Hive 中创建 UDF 的语言

问题描述

摘要:关注点与 Hive 中的 UDF 创建有关。

亲爱的朋友们,由于我是在 Hive 中创建 UDF 的新手(我已经通过 google 阅读过有关此内容,但不是很清楚),所以我在这里的第一件事是确定哪种方式可能是最好的方式,例如 Java/Python 或任何其他方式编写配置单元 UDF。

另一件事是我应该根据什么来分析?我应该寻找什么所有参数?

请注意,我几乎没有下面给出的需要编写 UDF 的函数。1.在需要“不聚合”时,选择另一个功能所需的子句分组。2.返回需要“聚合”时需要的select和group by子句。3. 对于vector_indexes 是SUM, LISTAGG 字符串,用于数据收集查询 4. 返回其他函数使用的WHERE 子句。5 以逗号分隔的字符串返回第 n 项。6. 窄数据的百分位值函数。7. 计算给定计数器名称的百分位数。除了百分位数,它还输出计算中使用的样本数、峰值和平均值。

非常感谢您,

标签: javapythonhiveuser-defined-functions

解决方案


这个问题可能不在指导方针之内,因为您正在征求意见。

话虽如此,我会建议:

A)你选择一种你知道的语言。

B)如果您两者都知道,请根据您需要的功能进行选择。

C)考虑性能 - 我相信(但不能确定)编译的 Java Jar 将在不启动 java 运行时的情况下运行,只是为了支持该 Java 模块(它将在 hive java 实例中运行)。要运行 Python 模块,需要实例化新的 Python 解释器并通过进程间通信传输数据。因此,java 的性能可能略高一些——尤其是在算法简单的情况下。但是,除非您正在处理庞大的数据集,否则您可能甚至不会注意到。

最后,您可能可以使用 Hive 查询语言完成您要求的所有功能。


推荐阅读