python - 在 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平台中安装的最佳实践是什么?
解决方案
此特定版本的隔离林是为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 的实现,虽然我自己没有使用过。
推荐阅读
- facet - Datadog 探索方面和措施
- teamcity - 如何在teamcity中对依赖项进行排序
- java - 如何访问 ArrayList 中对象的某个元素
- python - 在 PyTorch 中 required_grad 做了什么?(不需要_grad)
- python - OpenPyXL 遍历行直到找到一个空行
- python-3.x - 为什么我的损失函数返回负值?
- javascript - 获取“to”必须是字符串,“to”必须是 sendPushNotificationsAsync 的数组错误
- kubernetes - 标记 k8s 资源然后在同一 k8s 资源的规范中的标签上应用选择器的重要性是什么?
- python - Pandas 在数据帧上合并,同时保持共同的行数
- ruby-on-rails - 如何修复“您的 Ruby 版本是 2.3.3,但您的 Gemfile 指定了 2.5.7p206”