添加列时如何在Pyspark中使用UUID5或UUID3?

2024-10-01 00:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想添加一个列来为列中的值生成唯一的数字,但随机生成的值在每次运行时都应该是固定的

例如:我有一个df as

enter image description here

因此,每次跑步时,Harry的值应该是xxyyzz,Misha的值应该是gfddhh。 它不应该每次都产生任何随机数

我使用了以下代码,但它不起作用:

df=df.withColumn(“'Unique_Name',uuid.uuid5(uuid.NAMESPACE_DNS,'Name'))

它给出了一个错误,我试着将它转换为str,但错误仍然是一样的

任何帮助都将不胜感激


Tags: 代码namedfuuidas错误数字跑步
1条回答
网友
1楼 · 发布于 2024-10-01 00:32:48

您可以使用udf

from pyspark.sql import functions as F
import uuid

@F.udf
def create_uuid(name):
  return str(uuid.uuid5(uuid.NAMESPACE_DNS,name))

df.withColumn("Unique_Name",create_uuid('Name')).show(truncate=False)

输出:

+  -+                  +
|name |Unique_Name                         |
+  -+                  +
|Harry|195d4fd9-f3e0-50fb-8e70-fa31078bdbf9|
|Misha|1f473375-c514-5495-8ef3-a079548ffcfd|
+  -+                  +

相关问题 更多 >