gpt4 book ai didi

scala - Spark创建不接受输入的UDF

转载 作者:行者123 更新时间:2023-12-04 23:16:00 31 4
gpt4 key购买 nike

我想在我的 Spark 数据框中添加一个随机生成的 id 列。为此,我使用 UDF 来调用 UUID 的随机 UUID 方法,如下所示:

def getRandomId(s:String) : String = {
UUID.randomUUID().toString()
}

val idUdf = udf(getRandomId(_:String))
val newDf = myDf.withColumn("id", idUdf($"colName"))

显然,我的 getRandomId 函数不需要输入参数;但是,我不知道如何创建一个不将列作为输入的 UDF。这在 Spark 中可能吗?

我正在使用 Spark 1.5

最佳答案

您可以在没有参数的情况下注册 udf。这里() => String将解决需求

import org.apache.spark.sql.functions.udf
val uuid = udf(() => java.util.UUID.randomUUID().toString)

在 DataFrame 上使用 UDF( uuid )
val newDf = myDf.withColumn("uuid", uuid())

关于scala - Spark创建不接受输入的UDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867925/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com