前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive的内置HASH()函数使用哪种哈希算法

Hive的内置HASH()函数使用哪种哈希算法

作者头像
一个会写诗的程序员
发布2021-12-16 10:54:09
1.8K0
发布2021-12-16 10:54:09
举报

内置的HASH()函数使用哪种哈希算法?

我理想地是在寻找SHA512/SHA256哈希,类似于SHA()函数在Pig的linkedin datafu UDF中提供的功能。

最佳答案

HASH函数(从Hive 0.11开始)使用类似于java.util.List#hashCode的算法。

其代码如下所示:

基本上,这是有效Java一书中推荐的经典哈希算法。 引用一个伟人(和一个伟大的book):

The value 31 was chosen because it is an odd prime. If it were even and the multiplication overflowed, information would be lost, as multiplication by 2 is equivalent to shifting. The advantage of using a prime is less clear, but it is traditional. A nice property of 31 is that the multiplication can be replaced by a shift and a subtraction for better performance: 31 * i == (i << 5) - i. Modern VMs do this sort of optimization automatically.

我离题了。您可以查看HASH源here。

如果要在Hive中使用SHAxxx,则可以使用Apache DigestUtils类和Hive内置的reflect函数(希望可以使用):

关于hive - Hive的内置HASH()函数使用哪种哈希算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21176602/

参考资料

Hive Operators and User-Defined Functions (UDFs): https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Built-inFunctions

Hive运算符和用户定义的函数(UDF) 内置运算符 运算符优先级 关系运算符 算术运算符 逻辑运算符 字符串运算符 复杂类型构造函数 复杂类型上的运算符

内建函数

数学函数 十进制数据类型的数学函数和运算符 收集功能 类型转换功能 日期功能 条件函数 字符串函数 数据屏蔽功能 杂项 功能 路径 get_json_object 内置汇总功能(UDAF) 内置表生成函数(UDTF) 使用范例 explode (array) explode (map) posexplode (array) inline (array of structs) stack (values) explode posexplode json_tuple parse_url_tuple GROUPing and SORTing on f(column) Utility Functions(实用功能) UDF internals(UDF内部) Creating Custom UDFs

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/9/13 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档