Databricks - 创建永久用户定义函数 (UDF)

Posted

技术标签:

【中文标题】Databricks - 创建永久用户定义函数 (UDF)【英文标题】:Databricks - Creating permanent User Defined Functions (UDFs) 【发布时间】:2019-02-15 17:47:40 【问题描述】:

我能够创建一个 UDF 函数并使用 spark.UDF 方法注册到火花。但是,这仅适用于每个会话。 集群启动时如何自动注册python UDF函数?这些功能应该可供所有用户使用。示例用例是将时间从 UTC 转换为本地时区。

【问题讨论】:

【参考方案1】:

这是不可能的;这不像 Hive 中的 UDF。

将 UDF 编码为您提交的包/程序的一部分或 Spark 应用程序中包含的 jar(如果使用 spark-submit)。

然而,

spark.udf.register.udf("...

也需要这样做。这适用于 Databrick 笔记本等。UDF 需要根据 Spark 上下文/会话重新注册。

【讨论】:

谢谢。这有帮助。我将创建一个具有常用功能的笔记本并在主笔记本中调用它来注册功能。【参考方案2】:

实际上,您可以创建永久功能,但不能从笔记本中创建 您需要从 JAR 文件中创建它

https://docs.databricks.com/spark/latest/spark-sql/language-manual/create-function.html

CREATE [TEMPORARY] FUNCTION [db_name.]function_name AS class_name [正在使用资源,...]

资源: : (JAR|FILE|ARCHIVE) file_uri

【讨论】:

以上是关于Databricks - 创建永久用户定义函数 (UDF)的主要内容,如果未能解决你的问题,请参考以下文章

Hive自定义函数

如何为 Hive 自定义 UDF 添加 JAR,使其在 HDInsight 群集上永久可用?

在 Spark Azure Databricks 中创建自定义进度条指示器

Hive脚本、Hive API、Hive 自定义函数

无法在 Databricks 中使用 SecretKey

什么是好的 Databricks 工作流程