如此处所述使用 iforest:https ://github.com/titicaca/spark-iforest 但 model.save() 抛出异常。
遵循提到的 git 页面上的“Python API”部分下提到的代码片段。
from pyspark.ml.feature 导入 VectorAssembler 导入 os 导入 tempfile 从 pyspark_iforest.ml.iforest 导入 *
col_1:整数 col_2:整数 col_3:整数
assembler = VectorAssembler(inputCols=in_cols, outputCol="features") 特征化 = assembler.transform(df)
iforest = IForest(污染=0.5, maxDepth=2) 模型=iforest.fit(df)
model.save("model_path") 异常:scala.NotImplementedError:默认的 jsonEncode 只支持字符串、向量和矩阵。org.apache.spark.ml.param.Param 必须覆盖 java.lang.Double 的 jsonEncode。
下面是执行“model.transform(df)”后得到的输出数据帧。model.save() 应该能够保存模型文件。col_1:integer col_2:integer col_3:integer features:udt anomalyScore:double 预测:double