[英]What is the best practice to install IsolationForest in DataBrick platform for PySpark API?
我正在尝试在 DataBrick 平台上安装 Isolation Forest package。 databrick 中 spark 的版本是 3.1.1:
print (pyspark.__version__)
#3.1.1
所以我试着按照这篇文章来实现IsolationForest
但我无法通过以下步骤从这个repo安装 package:
Step 1. Package spark-iforest jar 部署到spark lib
cd 火花 iforest/
mvn clean package -DskipTests
cp 目标/spark-iforest-.jar $SPARK_HOME/jars/
步骤2. Package pyspark-iforest 并通过pip安装,如果不需要>python pkg请跳过此步骤
cd spark-iforest/python
python setup.py sdist
pip 安装 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"
在DataBrick平台中为 PySpark 安装IsolationForest
的最佳做法是什么?
此特定版本的隔离林是为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 的实现,尽管我自己没有使用过它。
使用前需要先导入jar:
from pyspark import SparkConf
from pyspark.sql import SparkSession, functions as F
from pyspark.ml.feature import VectorAssembler, StandardScaler
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()
from pyspark_iforest.ml.iforest import IForest, IForestModel
temp_path = tempfile.mkdtemp()
iforest_path = temp_path + "/iforest"
model_path = temp_path + "/iforest_model"
我通常在单独的 .py 文件上创建 spark session 或使用spark-submit
命令提供spark.jars
,因为加载 jars 的方式有时会在仅将它们添加到代码中时给我带来麻烦。
spark-submit --jars /full/path/to/spark-iforest-2.4.0.jar my_code.py
此外,正如@Alex Ott 提到的那样,版本不匹配,但在那种情况下错误会有所不同。 用 pyspark 3.x 搭建 iForest 不是很难,但如果你不想进去,可以降级 pyspark 版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.