美文网首页
Hive的内置HASH()函数使用哪种哈希算法

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

作者: 光剑书架上的书 | 来源:发表于2021-09-13 16:24 被阅读0次

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

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

最佳答案

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

其代码如下所示:

int hashCode = 0; // Hive HASH uses 0 as the seed, List#hashCode uses 1. I don't know why.
for (Object item: items) {
   hashCode = hashCode * 31 + (item == null ? 0 : item.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.

我离题了。您可以查看HASHhere

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

SELECT reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex', 'your_string')

关于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

相关文章

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

    内置的HASH()函数使用哪种哈希算法? 我理想地是在寻找SHA512/SHA256哈希,类似于SHA()函数在P...

  • 哈希算法

    哈希算法 什么是hash函数?常见的hash算法hashlib的用法hash算法的用途 什么是hash函数? 哈希...

  • 计算文件哈希值

    什么是哈希值? 哈希值(hash values)是使用哈希函数(hash function)计算得到的值。哈希函数...

  • python之哈希算法

    哈希(Hash)算法:`hash(object)` 一,基本概念 哈希算法将一个不定长的输入,通过散列函数变换成一...

  • 2.哈希加密 & base64加密

    一、哈希HASH 哈希(散列)函数MD5 SHA1/256/512 HMAC Hash的特点: 1.算法是公开...

  • 哈希算法

    什么是哈希算法 了解哈希算法需要了解以下几个概念。 散列表(hash table) 与散列函数 散列表也叫哈希表是...

  • 哈希算法

    哈希算法(Hash Algorithm)又称散列算法、散列函数、哈希函数,是一种从任何一种数据中创建小的数字“指纹...

  • 什么是哈希函数?

    哈希函数 Hash Function,也叫做「散列」、「杂凑」函数或者算法。理论上讲,哈希函数就是一种数学流程,将...

  • 从0到1学习区块链5-密码学

    区块链中主要用到了哈希算法和非对称加密。1、哈希算法(hash)哈希算法是一种数学函数算法。又叫散列算法,他是一种...

  • 区块链技术之哈希算法

    一、哈希是什么? Hash,一般翻译为散列、音译为哈希。它是一种数学函数,又被称为散列函数。哈希算法又称为哈希函数...

网友评论

      本文标题:Hive的内置HASH()函数使用哪种哈希算法

      本文链接:https://www.haomeiwen.com/subject/gtrfgltx.html