apache-spark - Spark xxhash64 在执行环境中不一致
问题描述
我正在尝试使用 Spark 3.0 DataFrame API 内置函数在给定列子集的情况下xxhash64
生成long
主键列,如下所示:
df_with_id = df.withColumn(
"CONTRACT_IDENTIFIER",
xxhash64(
"SOURCE_SYSTEM",
"SOURCE_SYSTEM_CONTRACT_IDENTIFIER",
"CONTRACT_INCEPTION_DATE",
),
)
我还创建了一个单元测试,用于比较DataFrame
s 和生成的 ID 是否相等。但是,看起来生成的哈希码在执行环境(JVM?)之间并不一致,因为测试在本地运行时成功,但在集成测试 Spark 集群中执行时失败。
所以我的问题是这是否是预期的事情以及是否有其他方法可以实现同样的事情,即通过散列列的子集来创建行 ID?
解决方案
推荐阅读
- algorithm - Booth's Algorithm for Lexicographically minimum string rotation 的解释
- vba - 在 Access VBA 中将第二个嵌套子表单复选框设置为 true
- json - jq比较2个json文件并按键值删除重复对象
- javascript - React JS 中带有高亮和可点击单词的文本区域
- flutter - 如何在 Dart/shelf 中重定向请求?
- php - 获取邮递员在php上发送的原始数据
- javascript - 为什么我的图片没有显示在我的轮播中?
- mysql - Laravel:在表格的一列中存储一个由 3 个字符串组成的数组
- python - 为什么我在尝试从我的 Mac 终端执行“导入请求”时收到 AttributeError?
- windows - C WINAPI 中的 Graphics::SetSmoothingMode