DataFusion Wrangler中使用MD5哈希函数出现前置32个0的问题求助
问题原因及解决方法
原因分析
你遇到的问题核心是对hash命令中第三个参数(raw)的作用理解有误:
- 当设置
raw=true时,DataFusion Wrangler返回的是原始二进制格式的MD5哈希值(16字节),而非你期望的十六进制字符串。 - 后续显示或存储时,这个二进制值被转换为十六进制字符串,但受内部处理逻辑(比如固定长度字节数组的填充机制)影响,前面被追加了32个0(对应16字节的空值填充),最终得到64位的结果。
解决方法
若需要标准的32位十六进制MD5字符串,只需将hash命令的第三个参数改为false即可:
set-column :numbertohash "12345" hash :numbertohash MD5 false
执行后就能得到预期的827ccb0eea8a706c4c34a16891f84e7b。
内容的提问来源于stack exchange,提问作者naveen
相关产品推荐
相关产品推荐

