---
title: 配置Spark配置文件
description: "安装完Spark引擎后，还需在OmniOperator算子加速特性的配置文件中添加相应的Spark配置，才能正常执行业务。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2530/bds/kunpengbds_omniruntime_20_02137.html
sourcePath: /source/zh/kunpengboostkithistory/2530/bds/kunpengbds_omniruntime_20_02137.html
indexId: 62c252a4c4e44f0f8ab87b59f4f2eced15a90d5e02c8565340f40d53ebcfda0179
---
# 配置Spark配置文件

安装完Spark引擎后，还需在OmniOperator算子加速特性的配置文件中添加相应的Spark配置，才能正常执行业务。

1. 在“/opt/omni-operator/conf/omni.conf”文件中新增Spark配置内容。

  a. 打开“/opt/omni-operator/conf/omni.conf”文件。
    1 vi /opt/omni-operator/conf/omni.conf

  b. 按“i”进入编辑模式，新增关于Spark配置相关内容（推荐配置）。

```
# <----Spark---->
#数学运算中小数舍入模式，默认为DOWN。HALF_UP表示向最接近数字方向舍入，如果与两个相邻数字的距离相等，则向上舍入，就是通常讲的四舍五入。DOWN表示截断，即向零方向舍入。
RoundingRule=DOWN
#Decimal操作结果是否检查溢出，默认为CHECK_RESCALE。CHECK_RESCALE表示检查溢出，NOT_CHECK_RESCALE表示不检查溢出。
CheckRescaleRule=CHECK_RESCALE
#Replace操作中，对待空字符是否替换，默认为NOT_REPLACE。REPLACE表示替换，NOT_REPLACE表示不替换。
#例如，InputStr="apple", ReplaceStr="*", SearchStr=""，openLooKeng会将字母中间的空字符替换，得到OutputStr="*a*p*p*l*e*"。Spark则不替换，得到OutputStr="apple"。
EmptySearchStrReplaceRule=NOT_REPLACE
#Decimal转Double过程中，C++直接转换或先转为字符串再进行转换，默认为CONVERT_WITH_STRING。CAST表示直接转换，CONVERT_WITH_STRING表示先转为字符串再进行转换。
CastDecimalToDoubleRule=CONVERT_WITH_STRING
#substr操作中，负数索引超出最小索引，直接返回空串或仍继续取字符串，默认为INTERCEPT_FROM_BEYOND。EMPTY_STRING表示返回空串，INTERCEPT_FROM_BEYOND表示继续取字符串。
#例如，str="apple", strLength=5, startIndex=-7, subStringLength=3。 字符串长度为5，从索引-7的位置取3个字符。"apple"长度为5，最小负数索引为-4，由于-7小于-4，OLK直接返回空串，Spark则仍从-7的位置取3个字符后仍继续取字符串，直到取到值"a"后返回
NegativeStartIndexOutOfBoundsRule=INTERCEPT_FROM_BEYOND
#是否支持ContainerVector，默认为NOT_SUPPORT。SUPPORT表示支持，NOT_SUPPORT表示不支持。
SupportContainerVecRule=NOT_SUPPORT
#字符串转Date过程中，是否支持降低精度，默认为ALLOW_REDUCED_PRECISION。NOT_ALLOW_REDUCED_PRECISION表示不允许降低精度，ALLOW_REDUCED_PRECISION表示允许降低精度。
#例如，openLooKeng要求完整书写ISO日期扩展格式，不能省略Month和Day，如1996-02-08。Spark支持省略Month和Day，如1996-02-28, 1996-02, 1996都支持。
StringToDateFormatRule=ALLOW_REDUCED_PRECISION
#VectorBatch是否包含filter column，默认为NO_EXPR。NO_EXPR表示不包含filter column，EXPR_FILTER表示包含filter column。
SupportExprFilterRule=EXPR_FILTER
#在substr运算时，默认为IS_SUPPORT，当配置项设置为IS_NOT_SUPPORT时,表示不支持startIndex=0时从第一个元素开始取，因为默认起始索引从1开始，若起始索引为0，默认返回空字符串，为IS_SUPPORT时，表示支持substr函数在startIndex=0时支持从第一个元素开始取。
ZeroStartIndexSupportRule=IS_SUPPORT
#表达式是否校验，
ExpressionVerifyRule=NOT_VERIFY
# <----Other properties---->
# 是否开启codegen函数批处理，默认关闭
enableBatchExprEvaluate=false
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
2. 将OmniOperator安装目录打包并上传至HDFS，以便多个节点可以同时访问和处理该文件。

  a. 将管理节点上的“/opt/omni-operator”文件夹打包为omni-operator.tar.gz，文件名和路径可根据实际需求自行定义。
    1 2 cd /opt tar -czvf /opt/omni-operator.tar.gz -C /opt omni-operator

  b. 将打包好的安装包omni-operator.tar.gz上传到HDFS上的规划账号下。以下示例使用root账号，实际使用中可替换为其他规划账号，路径“/user/root”也可根据实际情况修改。
    1 hdfs dfs -put /opt/omni-operator.tar.gz /user/root

    用户上传并运行omni-operator.tar.gz安装包后，对该文件具有读取权限。
