我想爲hive中的字符串計算散列,而不使用現有函數編寫任何UDF。這樣我就可以使用類似的方法在其他語言中獲得一致的散列。例如:是否有任何功能可以用來添加角色或XOR。在Hive中計算散列而不使用哈希函數
0
A
回答
1
這取決於Hive的版本,參見。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Misc.Functions
select XYZ, hash(XYZ) from ABC
已問世多年,適用普通的舊java.lang.String.hashCode()
,返回一個INT(32位散列)
select XYZ, crc32(XYZ) from ABC
需要蜂巢1.3和適用普通的舊循環冗餘校驗(可能通過java.util.zip.CRC32
)返回BIGINT(32位散列)
select XYZ, md5(XYZ), sha1(XYZ), sha2(XYZ,256), sha2(XYZ,512) from ABC
需要配置單元1.3和適用強,加密個散列函數,返回一個STRING與二進制(128,160,256和512位散列)的十六進制表示
[編輯]答案that post還具有用於施加加密散列函數具有非常好的解決方法舊版本的Hive,使用Apache Commons靜態方法和reflect()
。
相關問題
- 1. 哈希散列
- 2. 哈希函數來散列IP碎片
- 3. 哈希表 - 散列函數實現
- 4. 寫散列哈希
- 5. 散列哈希perl
- 6. 在Perl中引用散列的哈希
- 7. 散列函數計算
- 8. 哈希散列與陣內哈希
- 9. 在javascript中列表的散列哈希哈希
- 10. 陣列哈希散列
- 11. 如何從Perl中的哈希數組創建哈希散列?
- 12. 動態哈希表使用鏈散列
- 13. 使用散列訪問哈希
- 14. 使用哈希作爲鹽的散列?
- 15. 在Ruby中訪問哈希散列哈希
- 16. C#中的哈希計算
- 17. SHA256哈希計算在C++
- 18. CRC16哈希函數,用於計算來自兩個輸入的哈希值
- 19. 反向哈希散列在Perl中
- 20. 在散列哈希中訪問值
- 21. 構建散列哈希
- 22. 製作md5散列哈希
- 23. 排序散列哈希
- 24. 如何共享哈希散列在多線程的perl分享哈希散列
- 25. 如何遍歷包含哈希數組的哈希散列?
- 26. 將散列數組傳遞給哈希哈希值
- 27. 轉換散列哈希數組Ruby Ruby
- 28. 哈希與數組值的散列
- 29. 哈希散列從一個數組
- 30. Adressing哈希散列與數組
Your title says *「without use exisiting hash fuction」*,but your question says *「only using exisiting functions」*這是完全相反的。你想要什麼,實際上? –
您必須對您正在使用的Hive版本和您提到的其他語言 –
「更具體一些」以便我可以使用類似的方法來獲得其他語言中一致的哈希值「因此,如果我使用現有的哈希函數,如果我用其他語言計算它的話會相似。所以我想使用「其他」現有函數來計算最簡單的哈希,我也可以在其他語言中進行復制。對於例如:我想bucketize字符串,所以我可以做ASCII(「abc」)%NoofBuckets它會給我ascii的第一個字符,但分佈跨桶不會那麼好。所以我需要一些更合理的東西。 –