---
title: （可选）安装并执行Spark UDF业务
description: "仅在使用OmniOperator算子加速UDF功能的情况下，才需要执行Spark UDF业务。执行前需先执行Spark引擎业务。当前的OmniOperator算子加速UDF插件仅支持Simple UDF，若OmniOperator算子加速UDF不支持，会回退到原生Spark。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/bds/kunpengbds_omniruntime_20_0067.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/bds/kunpengbds_omniruntime_20_0067.html
indexId: 9ae5dd84639c6248059a93fde948858ba15cd99ed011feaaaa0b2c8f05328a6380
---
# （可选）安装并执行Spark UDF业务

仅在使用OmniOperator算子加速UDF功能的情况下，才需要执行Spark UDF业务。执行前需先执行Spark引擎业务。当前的OmniOperator算子加速UDF插件仅支持Simple UDF，若OmniOperator算子加速UDF不支持，会回退到原生Spark。

#### 安装Spark UDF插件

1. 请确认安装Spark UDF插件前已经按照安装SparkExtension完成Spark引擎的安装。
2. 将UDF依赖的JAR放置到HDFS的“/user/hive-udf”目录下。
  “/user/hive-udf”目录用户可自行定义。 UDF依赖的JAR需要用户自行提供。

3. 在集群的管理节点注册Hive UDF。
  注册方式参考Spark集成Hive UDF官方文档(https://spark.apache.org/docs/latest/sql-ref-functions-udf-hive.html)。


#### 执行Spark UDF业务

SQL执行、执行计划查看及结果对比方式等，请参见执行Spark引擎业务。


执行步骤请参见执行Spark引擎业务，只需在SparkExtension的Spark-SQL命令行窗口启动命令基础上补充如下命令参数即可。

- 在spark.driver.extraClassPath参数后追加/opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar。

  - 3.1.1版本追加后结果如下。
    1 --conf spark.driver.extraClassPath=/opt/omni-operator/lib/boostkit-omniop-spark-3.1.1-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-bindings-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar:/opt/omni-operator/lib/dependencies/protobuf-java-3.15.8.jar:/opt/omni-operator/lib/dependencies/boostkit-omniop-native-reader-3.1.1-1.5.0.jar

  - 3.3.1版本追加后结果如下。
    1 --conf spark.driver.extraClassPath=/opt/omni-operator/lib/boostkit-omniop-spark-3.3.1-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-bindings-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar:/opt/omni-operator/lib/dependencies/protobuf-java-3.15.8.jar:/opt/omni-operator/lib/dependencies/boostkit-omniop-native-reader-3.3.1-1.5.0.jar

- 在spark.executor.extraClassPath参数后追加/opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar。

  - 3.1.1版本追加后结果如下。
    1 --conf spark.executor.extraClassPath=/opt/omni-operator/lib/boostkit-omniop-spark-3.1.1-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-bindings-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar:/opt/omni-operator/lib/dependencies/protobuf-java-3.15.8.jar:/opt/omni-operator/lib/dependencies/boostkit-omniop-native-reader-3.1.1-1.5.0.jar

  - 3.3.1版本追加后结果如下。
    1 --conf spark.executor.extraClassPath=/opt/omni-operator/lib/boostkit-omniop-spark-3.3.1-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-bindings-1.5.0-aarch64.jar:/opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar:/opt/omni-operator/lib/dependencies/protobuf-java-3.15.8.jar:/opt/omni-operator/lib/dependencies/boostkit-omniop-native-reader-3.3.1-1.5.0.jar

- 添加--jars /opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar参数。
  1 --jars /opt/omni-operator/lib/boostkit-omniop-udf-1.5.0-aarch64.jar
