当前位置:  开发笔记 > 编程语言 > 正文

Spark创建不接受输入的UDF

如何解决《Spark创建不接受输入的UDF》经验,为你挑选了1个好方法。

我想向我的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



1> mrsrinivas..:

您可以注册没有参数的udf。这里() => String将解决要求

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

uuid在DataFrame上使用UDF()

val newDf = myDf.withColumn("uuid", uuid())

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有