我在SPARK中有多个scala脚本,每个脚本都需要uprUDF
EG。 Test1.scala
val dataset = Seq((0, "hello"), (1, "world")).toDF("id", "text")
import org.apache.spark.sql.functions.udf
val uprUDF = udf((lname: String
) => {
lname.toUpperCase
})
dataset.withColumn("upper", uprUDF('text)).show
此处uprUDF
是用户定义的函数,并希望将uprUDF
放在一些公共代码库/脚本中,其他所有scala脚本都可以访问uprUDF
。
与Hive一样,我们在java(常用UDF的存储库)中创建了udf,并在Hive中注册以使用它。
我的问题
答案 0 :(得分:0)
这是独立Spark脚本的限制,可以通过在jar中构建所需的scala类来消除,然后可以在集群中部署和运行。在scala类中,常见的UDF实用程序函数可以在一个类中聚合,可以在需要时将其导入到主要的spark应用程序可运行类中。 构建spark jar的标准方法是使用maven构建工具。