确定在 Hive 中创建 UDF 的语言
Posted
技术标签:
【中文标题】确定在 Hive 中创建 UDF 的语言【英文标题】:Determine the language for UDF creation in Hive 【发布时间】:2019-05-07 00:57:10 【问题描述】:总结:关注点与 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. 计算给定计数器名称的百分位数。除了百分位数,它还输出计算中使用的样本数、峰值和平均值。
非常感谢您,
【问题讨论】:
【参考方案1】:这个问题可能不在指南范围内,因为您是在征求意见。
话虽如此,我会提议:
A) 你选择一种你知道的语言。
B) 如果您两者都知道,请根据您需要的功能进行选择。
C) 考虑性能 - 我相信(但不能确定)编译的 Java Jar 将在不启动 Java 运行时的情况下运行,只是为了支持该 Java 模块(它将在 hive java 实例中运行)。要运行 Python 模块,需要实例化新的 Python 解释器并通过进程间通信传输数据。因此,java 可能性能稍好一些——尤其是在算法简单的情况下。但是,除非您正在处理庞大的数据集,否则您可能根本不会注意到。
最后,您可能可以使用 Hive 查询语言完成您要求的所有功能。
【讨论】:
感谢 GMc,surajit-paul.blogspot.com/2014/06/javapython-as-hive-udf.html 此链接提供了与此相关的非常有用的信息。 @user10914967 如果这对您有所帮助,请您接受答案(点击答案旁边的灰色复选标记)并投票吗?谢谢。以上是关于确定在 Hive 中创建 UDF 的语言的主要内容,如果未能解决你的问题,请参考以下文章