【问题标题】:Databricks - Create Function (UDF) in PythonDatabricks - 在 Python 中创建函数 (UDF)
【发布时间】:2019-07-23 23:33:35
【问题描述】:

如何创建像 https://docs.databricks.com/spark/latest/spark-sql/language-manual/create-function.html#create-function 这样的函数但在 python 中定义函数?

我已经做过类似的事情了:

from pyspark.sql.types import IntegerType
def relative_month(input_date):
  if input_date is not None:
    return ((input_date.month + 2) % 6)+1
  else:
    return None
_ = spark.udf.register("relative_month", relative_month, IntegerType())

但是这个 UDF 只适用于运行这段代码的笔记本。

我想使用 SQL 语法来注册函数,因为我将有一些用户通过 SQL 客户端使用 databricks,他们也需要这些函数。

在 Databricks 文档中说我可以定义资源:

: (JAR|FILE|ARCHIVE) file_uri

我需要创建一个 .py 文件并将其放在我的 databricks 集群中的某个位置吗?

【问题讨论】:

    标签: python apache-spark databricks


    【解决方案1】:

    要共享笔记本,请在集群配置中将 spark.databricks.session.share 设置为 true。通常 UDF 在 spark 中是特定于应用程序的并且是临时的,因此如果必须在其他应用程序中使用它,他们必须再次注册它才能使用它。但正如我所说,如果您将 spark.databricks.session.share 设置为 true ,您可以在多个笔记本之间共享它。

    如果是用于 HIVE,那么您可以永久注册 UDF,并且可以跨多个用户访问

    这是一个类似的线程。看看它是否有帮助。

    Databricks - Creating permanent User Defined Functions (UDFs)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多