Mr *_* do 4 hash row rdd pyspark
正如问题中所指定的,我正在尝试为 RDD 的每一行生成一个哈希值。出于我的目的,我不能使用zipWithUniqueId()
方法,对于 RDD 的每一行,我需要所有列的一个哈希值。
for row in DataFrame.collect():
return hashlib.sha1(str(row))
Run Code Online (Sandbox Code Playgroud)
我知道这是最糟糕的方式,迭代到 rdd,但我是 pyspark 的初学者。然而问题是:我为每一行获得相同的哈希值。我尝试使用强抗碰撞散列函数,但它太慢了。有没有办法解决这个问题?提前致谢 :)
查看pyspark.sql.functions.sha2(col, numBits),它返回 SHA-2 系列哈希函数(SHA-224、SHA-256、SHA-384 和 SHA-512)的十六进制字符串结果
从 Spark v1.5 开始可用
import pyspark.sql.functions as F
df2 = df.withColumn('my_col_hashed', F.sha2(F.col('my_col'), 256))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6825 次 |
最近记录: |