我正在尝试将散列过程从mysql转换为hive。在配置单元中,我的代码失败,出现以下错误
ParseException line 6:7 cannot recognize input near '0xffffff' '>' '50' in expression specificati
如何在配置单元中写入十六进制数0xffffff
mysql代码(从这个参考中得到mysql逻辑http://blog.richardweiss.org/2016/12/25/hash-splits.html:
SELECT if(
conv(
substr(
md5(concat(ID, '-', SALT)),
1, 6),
16, 10)/0xffffff > CONTROL_GROUP_SIZE, 't', 'c')
配置单元代码:
SELECT if(
conv(
substr(
md5(concat('12345', '-','xxx2017')),
1, 6),
16,10)/0xffffff > 50, 't', 'c')
1条答案
按热度按时间0s0u357o1#
配置单元无法识别十六进制表示形式,从
0x
,就像在python中一样。所以,简单地使用'ffffff'
相反。另外,由于您基本上是在进行十进制除法,因此可以添加另一个除法conv
函数将其转换为十进制。