PyPMML失败找不到py4j jar错误

写的arjun.kaimaparambilrajan

去年发表在:2022年5月16日

问题

PyPMML Python PMML得分库。

在安装PyPMML在砖集群中,它与一个失败Py4JError:找不到py4j jar错误。

%从pypmml python导入模型modelb = Model.fromFile (/ dbfs / shyam / DecisionTreeIris.pmml)错误:Py4JError:找不到py4j jar

导致

这个错误发生由于依赖默认Py4J图书馆。

  • 砖运行时5.0 - -6.6使用Py4J 0.10.7。
  • 砖运行时7.0及以上使用Py4J 0.10.9。

默认Py4J库安装到另一个位置比标准Py4J包。因此,当PyPMML试图调用Py4J从默认路径,它失败了。

解决方案

设置一个集群级init脚本所需的Py4J jar文件复制到期望的位置。

  1. 使用pip安装的版本Py4J对应于您的砖运行时版本。
    例如,在砖6.5运行时的运行pip安装py4j = = < 0.10.7 >在安装一个笔记本Py4J 0.10.7集群。
  2. 运行找到/砖/ - name“py4j * jar”在一个笔记本确认Py4J jar文件的完整路径。它通常位于一个路径相似/砖/ python3 /分享/ py4j /
  3. 手动复制的Py4J jar文件安装路径DBFS路径/ dbfs / py4j /
  4. 运行以下代码片段在Python笔记本创建install-py4j-jar.shinit脚本。确保版本号Py4J片段中列出对应于您的砖运行时版本。
    % python dbutils.fs.put(" /砖/ init脚本/ install-py4j-jar。sh”、“”“# !/bin/bash回声“日期”复制mkdir - p /分享/ py4j / /当前版本/ cp / dbfs / py4j py4j <版本号>。jar /分享/ py4j / cp / dbfs / py4j py4j <版本号>。jar /当前版本/ echo”复制完成日期”“””,真的)
  5. 附加install-py4j-jar.shinit脚本集群,在配置集群级指令后,init脚本(AWS|Azure|GCP)。
  6. 重新启动集群。
  7. 验证PyPMML是否按预期运行。
这篇文章有用吗?