创建函数(外部)
适用于:砖运行时
创建一个临时或永久的外部函数。临时函数作用域在会话级别而永久的函数中创建目录和所有可用持久会话。中指定的资源使用
条款都得到第一次执行时执行人。
除了SQL接口,允许您创建自定义用户定义标量和火花聚合函数使用Scala, Python和Java api。看到外部用户自定义标量函数(udf)和用户定义的聚合函数(UDAFs)为更多的信息。
参数
或替换
如果指定,函数重载的资源。这主要是有用的去接任何更改的实现功能。这个参数是相互排斥的
如果不存在
一起,不能指定。临时
表示函数的范围。当
临时
指定创建的函数是有效的,可见在当前会话。没有持久的条目的目录的功能。如果不存在
如果指定,创建函数只有当它不存在。抛出的创建函数成功(没有错误)如果指定的功能系统中已经存在。这个参数是相互排斥的
或取代
一起,不能指定。函数的名称。函数名可以选择合格的模式名。
class_name
类的名称,它提供了创建函数的实现。实现类将扩展的一个基类如下:
应该扩大
UDF
或UDAF
在org.apache.hadoop.hive.ql.exec
包中。应该扩大
AbstractGenericUDAFResolver
,GenericUDF
,或GenericUDTF
在org.apache.hadoop.hive.ql.udf.generic
包中。应该扩大
UserDefinedAggregateFunction
在org.apache.spark.sql.expressions
包中。
resource_locations
的资源列表包含函数的实现及其依赖项。
语法:
使用{{(JAR|文件|存档)resource_uri},…}
例子
——1。创建一个简单的UDF SimpleUdf,增量提供的积分值10。——进口org.apache.hadoop.hive.ql.exec.UDF;——公共类SimpleUdf延伸UDF {——公共int评估(int值){——返回值+ 10;- - -}- - -}——2。编译并把它在一个名为“SimpleUdf的JAR文件。jar在/ tmp。——创建一个名为“测试”的表并插入两行。>创建表测试(c1INT);>插入成测试值(1),(2);——创建一个永久的函数称为“simple_udf”。>创建函数simple_udf作为“SimpleUdf”使用JAR“/ tmp / SimpleUdf.jar”;——验证函数是在注册表中。>显示用户功能;函数- - - - - - - - - - - - - - - - - -默认的。simple_udf——调用函数。每一个选定的值应该是增加了10。>选择simple_udf(c1)作为function_return_value从t1;function_return_value- - - - - - - - - - - - - - - - - - - - - - - -1112——创建一个临时函数。>创建临时函数simple_temp_udf作为“SimpleUdf”使用JAR“/ tmp / SimpleUdf.jar”;——验证新创建的临时函数是在注册表中。——临时函数没有一个合格的——与之关联的模式。>显示用户功能;函数- - - - - - - - - - - - - - - - - -默认的。simple_udfsimple_temp_udf——1。提供修改SimpleUdf”年代实现添加积分值20。——进口org.apache.hadoop.hive.ql.exec.UDF;——公共类SimpleUdfR延伸UDF {——公共int评估(int值){——返回值+ 20;- - -}- - -}——2。编译并把它在一个名为“SimpleUdfR的jar文件。jar在/ tmp。——取代“simple_udf”的实现>创建或取代函数simple_udf作为“SimpleUdfR”使用JAR“/ tmp / SimpleUdfR.jar”;——调用函数。每一个选定的值应该是增加了20倍。>选择simple_udf(c1)作为function_return_value从t1;function_return_value- - - - - - - - - - - - - - - - - - - - - - - -2122