Spark 2.x永久自定义函数编写

以前写过一篇spark1.6.x编写永久的自定义函数,今天补上写spark2.x永久自定义函数的步骤:

1、使用scala语言编写自定义函数,spark2.x已经不在支持使用hive的方式加载函数

  •     Scala类参数不同继承不同scala类(UnaryExpression、BinaryExpression、TernaryExpression、Expression)
  •     重写nullSafeEval方法或者eval方法(静态参数)
  •     重写doGenCode方法(动态参数)

2、将自定义函数集成FunctionRegistry类
3、编译打包放入spark-catalyst_2.11-2.2.0.jar

4、将参数传递方法集成functions.scala中

    functions.scala中对一个自定义函数处理:

Spark 2.x永久自定义函数编写_第1张图片

你可能感兴趣的:(spark2.x)