在 spark ML 2.2.0 中使用 sklearn-python 模型进行预测

Posted

技术标签:

【中文标题】在 spark ML 2.2.0 中使用 sklearn-python 模型进行预测【英文标题】:Using sklearn-python model in spark ML 2.2.0 for prediction 【发布时间】:2018-11-11 08:53:59 【问题描述】:

我正在使用 sklearnpython 中处理一个文本分类问题。我已创建模型并将其保存在 pickle 中。

下面是我在 sklearn 中使用的代码。

vectorizerPipe = Pipeline([('tfidf', TfidfVectorizer(lowercase=True,
        stop_words='english')),
('classification', OneVsRestClassifier(LinearSVC(penalty='l2', loss='hinge'))),])

prd=vectorizerPipe.fit(features_used,labels_used])

f = open(file_path, 'wb')
pickle.dump(prd, f)

有没有办法使用这个相同的泡菜来获取基于 DataFrame 的 apache spark 而不是基于 RDD 的输出。我浏览了以下文章,但没有找到合适的实现方法。

    what-is-the-recommended-way-to-distribute-a-scikit-learn-classifier-in-spark

    how-to-do-prediction-with-sklearn-model-inside-spark -> 我在 *** 上找到了这两个问题,发现它很有用。

deploy-a-python-model-more-efficiently-over-spark

我是机器学习的初学者。所以,请原谅我的解释是幼稚的。任何相关的示例或实现都会有所帮助。

【问题讨论】:

您是否找到了有关如何在火花集群上使用 scikit-learn 训练模型的任何解决方案? @Rudr :不,我们已经使用 scala 为该特定过程创建了一个单独的模型。 【参考方案1】:

RDD -> 使用 Spark 触发数据帧

喜欢:

import spark.implicits._
val testDF = rdd.map line=>
                      (line._1,line._2)
                     .toDF("col1","col2")

【讨论】:

以上是关于在 spark ML 2.2.0 中使用 sklearn-python 模型进行预测的主要内容,如果未能解决你的问题,请参考以下文章

使用 PySpark 将多个数字列拟合到 spark-ml 模型中

Spark:从管道模型中提取 ML 逻辑回归模型的摘要

在 Spark 的 map 函数中运行 ML 算法

如何在 Spark 中获取 spark.ml NaiveBayes 概率向量而不是 [0-1] 类?

是否可以访问 spark.ml 管道中的估计器属性?

Spark ML Transformer - 使用 rangeBetween 在窗口上聚合