在 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 模型进行预测的主要内容,如果未能解决你的问题,请参考以下文章