問題
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文件複製到期望的位置。
- 使用pip安裝的版本Py4J對應於您的磚運行時版本。
例如,在磚6.5運行時的運行pip安裝py4j = = < 0.10.7 >在安裝一個筆記本Py4J 0.10.7集群。 - 運行找到/磚/ - name“py4j * jar”在一個筆記本確認Py4J jar文件的完整路徑。它通常位於一個路徑相似/磚/ python3 /分享/ py4j /。
- 手動複製的Py4J jar文件安裝路徑DBFS路徑/ dbfs / py4j /。
- 運行以下代碼片段在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”複製完成日期”“””,真的)
- 附加install-py4j-jar.shinit腳本集群,在配置集群級指令後,init腳本(AWS|Azure|GCP)。
- 重新啟動集群。
- 驗證PyPMML是否按預期運行。