函数 (Function)
用户可以自定义表函数(Function)来指定特定任务,例如复杂计算、转换或自定义数据操作。
通过表函数用于难以通过内置 Apache Spark 函数表达的逻辑。 内置的 Apache Spark 函数针对分布式处理进行了优化,通常可大规模提供更好的性能。一般情况下,可以使用表函数进行临时查询、手动数据清理、探索性数据分析,以及针对中小型数据集的操作。
创建函数
平台目前支持 Scala 或 Java 两种语言创建的表函数。可以通过网页或者使用SQL创建表函数。
在网页创建函数可以通过以下操作:
- 选择导航栏 数据 » 数据库, 查看当前数据库的列表。
- 选择需要创建函数的数据库, 进入数据库详情页。
- 鼠标移动到 创建, 在下拉菜单中选择 函数。
- 在弹出的窗口输入要创建的函数的名称、选择集群(集群对创建的函数进行解析)、函数描述、函数语言(Java, Scala 或 Python) 以及
函数的脚本实现。 - 点击 确认 完成函数创建。
可以使用 SQL 来创建函数,例如使用 Scala 语言创建一个函数:
Scala示例
-- 使用 `SCALA` 语法编写函数,使传入的参数加 10 之后返回,之后将函数嵌入 `CREATE FUNCTION` 语句中。
CREATE FUNCTION scala_udf LANGUAGE SCALA
AS $$(x: Int) => { x + 10 }$$;
-- 调用函数,每个被选中的值都被加了 10。
SELECT scala_udf(c1) AS function_return_value FROM test;
+---------------------+
|function_return_value|
+---------------------+
| 11|
| 12|
+---------------------+
关于使用SQL创建函数和更多示例请参阅:
删除或修改函数
您必须拥有数据库的写权限才能删除函数。可以通过数据库的函数列表页删除函数,或使用SQL命令删除函数。例如,
-- 删除永久函数
DROP FUNCTION test_avg;
使用 SQL 删除函数请参阅: