当分类器的分类算法依赖于分区索引时,如何用分区内的示例来训练分类器?例如,假设以下代码段:
val data = MLUtils.loadLibSVMFile(sc, "path to SVM file")
val r = data.mapPartitionsWithIndex((index,localdata)=>{
if (index % 2 == 0)
{
// train a NaiveBayes with localdata
NaiveBayes.train(localdata) // Error => found:iterator[LabeledPoint] , required: RDD[labeledPoint]
}
else
{
// train a DecisionTree classifier with localdata
DecisionTree.train(localdata) // Error => found:iterator[LabeledPoint] , required: RDD[labeledPoint]
}
})
在我看来,这个错误是对的,因为这些任务是在各自独立的jvm中执行的,不能从map任务中分发。这就是为什么我不能在我的任务中访问sparkcontext。但是,有没有人有其他的建议来实现我的目标?
1条答案
按热度按时间vsdwdz231#
基于以上评论部分的讨论,你可以试试这个-