作者:静默的温柔结成思念 | 来源:互联网 | 2023-01-23 06:30
该总承包的hashCode
说
从应用程序的一次执行到同一应用程序的另一次执行,该整数不需要保持一致.
因此对于类似Spark的东西,每个执行器都有单独的JVM,它是否可以确保散列代码在整个群集中保持一致?
根据我的经验,我使用具有确定性哈希的东西,所以它不是一个问题.
1> Tzach Zohar..:
根据我的经验,我使用具有确定性哈希的东西,所以它不是一个问题.
这确实是要走的路,Spark 无法克服具有非确定性哈希码的对象的使用.
Java Enums的使用是一个特别臭名昭着的例子,说明如何出错,请参阅:http://dev.bizo.com/2014/02/beware-enums-in-spark.html.引用该帖子:
... Java的枚举类型的hashCode方法基于对象的内存地址.所以虽然是的,我们保证相同的枚举值在特定的JVM中有一个稳定的hashCode(因为枚举将是一个静态对象) - 当你尝试比较Java枚举的hashCodes时,我们没有这个保证生活在不同JVM中的价值观