对于PySpark哈希函数,我有一个简单的问题。
我已经检查过,在Scala中,星火使用基于murmur3hash的火花中的散列函数。
我想知道在PySpark (模块/pyspark/sql/Functions.html#散列)中,哈希函数到底使用了什么算法。
有人能回答这个问题吗?我还想知道PySpark哈希函数中使用的算法的代码。
发布于 2021-06-01 13:13:04
请注意,在PySpark之外复制哈希值并不简单,至少在python中是这样。PySpark使用该算法的一个实现,当在python中运行库时,该算法不会给出相同的结果。
甚至Scala &PySpark的哈希算法也不能直接兼容。原因在https://stackoverflow.com/a/46472986/10999642中解释。
因此,如果python中的可再现性很重要,那么可以使用python内置的散列函数,如下所示:
udf_hash = F.udf(lambda val: hash(val), T.LongType())
df = df.withColumn("hash", udf_hash("<column name>"))
https://stackoverflow.com/questions/67041501
复制相似问题