【暂时不适用20221226及以后发布的集算器】
很多时候,我们可能不是直接在集算器中执行dfx脚本,而是将集算器集成到第三方应用中来使用。那么如果想要使用外部库功能,就需要从【集算器安装根目录】/esProc/config目录下取raqsoftConfig.xml,手动在文件的<Runtime><EsProc> ... </EsProc></Runtime>中加上以下代码,指定外部库所需jar的引用路径:
<extLibsPath>外部库文件夹路径</extLibsPath>
<importLibs>
<lib>外部库文件夹名称</lib>
</importLibs>
下面以集算器嵌入到java应用程序中为例,介绍建模YModelCli外部库在第三方应用中的使用:
1. 加载集算器JDBC需要用到的jar包
参考《教程》 集算器JDBC的基本部署 章节,放入集算器JDBC所需的jar。
2. 配置集算器JDBC的raqsoftConfig.xml文件
参考《教程》配置raqsoftConfig.xml章节
3. 加载建模外部库jar包
将建模YModelCli外部库核心jar(scu-ymodel-cli-2.10.jar)及以下列表的文件拷贝到一个独立的目录中,如(D:\extlib\YModelCli):
commons-beanutils.jar
commons-io-2.4.jar
commons-lang-2.6.jar
ezmorph-1.0.2.jar
fastjson-1.2.58.jar
gson-2.8.0.jar
jackson-annotations-2.9.6.jar
jackson-core-2.9.6.jar
jackson-databind-2.9.6.jar
jackson-databind-2.9.6-sources.jar
jackson-dataformat-msgpack-0.8.14.jar
json-lib-1.1-jdk13.jar
mining.jar
msgpack-0.6.12.jar
msgpack-core-0.8.16.jar
userconfig.xml
4.配置建模外部库所需的xml文件
在YModelCli外部库文件路径下的文件userconfig.xml中进行相关参数配置:
<?xml version="1.0" encoding="UTF-8"?>
<Config Version="1">
<Options>
<!--智能建模应用目录 -->
<Option Name="sAppHome" Value=""/>
<!--易明智能建模安装目录下的Python路径 -->
<Option Name="sPythonHome" Value=""/>
<!-- Python服务网络端口-->
<Option Name="iPythonServerPort" Value="8510"/>
<!-- Python进程数-->
<Option Name="iPythonProcessNumber" Value="2"/>
<!--是否智能补缺 -->
<Option Name="bAutoDecideImpute" Value="true"/>
<!--重采样次数 -->
<Option Name="iResampleMultiple" Value="150"/>
</Options>
</Config>
其中,参数sPythonHome的配置在Windows和Linux环境中略有不同,Windows中配置路径为:[sAppHome]/Python39/python.exe,Linux中配置路径为:[sAppHome]/Python39/bin/python3.9。
5. 在集算器JDBC的raqsoftConfig.xml中加入外部库的节点<lib>:
配置外部库的节点<lib>,上述步骤3中我们已将建模外部库所需的jar放入到D:\ extlib\YModelCli目录下,下面可直接添加节点:
<Esproc>
… …
//配置外部库文件夹路径
<extLibsPath>D:\extlib</extLibsPath>
<importLibs>
//配置外部库文件夹名称
<lib>YModelCli</lib>
</importLibs>
</Esproc>
6. 部署访问建模外部库数据的dfx文件:
|
A |
|
1 |
=ym_env() |
初始化环境 |
2 |
=ym_load_pcf("model.pcf") |
根据模型文件生成模型对象 |
3 |
=ym_predict(A2,"train_t.csv") |
执行预测操作,返回预测结果对象 |
4 |
=ym_json(A2) |
根据模型对象获取模型信息 |
5 |
=ym_json(A3) |
返回根据预测数据评估的模型表现信息 |
6 |
>ym_close(A1) |
释放资源 |
此dfx文件部署方式参考《教程》应用集成 – 被JAVA调用章节。
到此,就可以在JAVA中调用dfx文件了。