首页 > 解决方案 > 在 PySpark API 的 DataBrick 平台中安装 IsolationForest 的最佳实践是什么?

问题描述

我正在尝试在 DataBrick 平台中安装 Isolation Forest 包。databrick中spark的版本是3.1.1:

print (pyspark.__version__) 
#3.1.1

所以我尝试按照这篇文章来实现IsolationForest,但我无法通过以下步骤从这个repo安装包:

Step 1. 打包 spark-iforest jar 并部署到 spark lib

cd spark-iforest/

mvn clean package -DskipTests

cp 目标/spark-iforest-.jar $SPARK_HOME/jars/

步骤 2. 打包 pyspark-iforest 并通过 pip 安装,如果您不需要 >python pkg,请跳过此步骤

cd spark-iforest/python

python setup.py sdist

pip install dist/pyspark-iforest-.tar.gz

所以基本上我运行以下脚本并得到:ModuleNotFoundError: No module named 'pyspark_iforest'

from pyspark import SparkConf
from pyspark.sql import SparkSession, functions as F
from pyspark.ml.feature import VectorAssembler, StandardScaler
from pyspark_iforest.ml.iforest import IForest, IForestModel
import tempfile

conf = SparkConf()
conf.set('spark.jars', '/full/path/to/spark-iforest-2.4.0.jar')

spark = SparkSession \
        .builder \
        .config(conf=conf) \
        .appName("IForestExample") \
        .getOrCreate()

temp_path = tempfile.mkdtemp()
iforest_path = temp_path + "/iforest"
model_path = temp_path + "/iforest_model"

IsolationForest在 PySpark 的DataBrick平台中安装的最佳实践是什么?

标签: pythonapache-sparkpysparkdatabricksazure-databricks

解决方案


此特定版本的隔离林是为Spark 2.4 和 Scala 2.11编译的,并且与您正在使用的 Spark 3.1 二进制不兼容。您可以尝试使用基于 Spark 2.4 - 6.4 或 5.4 的 Databricks Runtime (DBR) 版本。

您可以查看 Microsoft 开发的mmlspark(Microsoft Machine Learning for Apache Spark)库——它有IsolationForest 的实现,虽然我自己没有使用过。


推荐阅读