【问题标题】:SparkSQL - can you create UDFs (User Defined Functions)?SparkSQL - 你能创建 UDF(用户定义函数)吗?
【发布时间】:2021-10-14 17:20:18
【问题描述】:

在文档中,我看到提到了用户定义的函数: https://spark.apache.org/docs/latest/sql-ref-functions-udf-scalar.html

但这里展示的是 Java 和 Scala 示例。

我说的是像下面这样的 Spark SQL 代码。是否可以为此定义和使用 UDF?

%sql
CREATE TABLE bla USING PARQUET AS
  SELECT *
  FROM jaja.haha AS haha

我很困惑为什么指南说 SQL 参考,然后继续显示非 SQL 代码。

【问题讨论】:

  • Afaik,您根据编码(java、scala、..)定义和注册它们并通过 Spark SQL 调用它们,但您不通过 Spark SQL 定义它们。

标签: apache-spark apache-spark-sql user-defined-functions databricks


【解决方案1】:

Databricks Runtime 9.0 开始,可以使用纯 SQL 语法定义标量用户定义函数(来自发行说明的示例):

CREATE FUNCTION square(x DOUBLE) RETURNS DOUBLE RETURN x * x;

有关语法和更多示例,请咨询documentation

【讨论】:

    【解决方案2】:

    您可以使用CREATE FUNCTION 来做到这一点。

    CREATE [ OR REPLACE ] [ TEMPORARY ] FUNCTION [ IF NOT EXISTS ]
        function_name AS class_name [ resource_locations ]
    

    阅读databricks文章here

    【讨论】:

    • 它没有定义 SQL 函数 - 你仍然需要编译代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多