我正在尝试根据Comcast
货币追踪规范生成范围ID。
https://github.com/Comcast/money/wiki
span-id
应为signed long int
个代表
以下是查询
random.getrandbits(64);
我很困惑long int应该是32 bit
还是64 bit
?
答案 0 :(得分:0)
它告诉你范围的事实告诉你它是64位整数 [-9223372036854775808,9223372036854775807] = [-2 ^ 63,2 ^ 63-1]
hive.execution.engine=spark
虽然没有生成有符号的int。即你正在创建0到18446744073709551616之间的整数。
尝试getrandbits
答案 1 :(得分:0)
如果理解错误,有人可以纠正我
始终“random.getrandombits(64)”将产生输出
无符号64位数(0到2 ** 64 -1)
可能的解决方案是生成有符号的long int( - (2 ^ 63)到(2 ^ 63)-1)
random.getrandombits(64) - 2 ** 63
谢谢@Batman