首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >星火流+ MLlib相结合

星火流+ MLlib相结合
EN

Stack Overflow用户
提问于 2016-04-25 10:31:35
回答 1查看 2.7K关注 0票数 7

我尝试过使用随机森林模型来预测一个例子流,但是我似乎不能用这个模型来分类这些例子。下面是pyspark中使用的代码:

代码语言:javascript
运行
复制
sc = SparkContext(appName="App")

model = RandomForest.trainClassifier(trainingData, numClasses=2, categoricalFeaturesInfo={}, impurity='gini', numTrees=150)


ssc = StreamingContext(sc, 1)
lines = ssc.socketTextStream(hostname, int(port))

parsedLines = lines.map(parse)
parsedLines.pprint()

predictions = parsedLines.map(lambda event: model.predict(event.features))

在集群中编译错误时返回的错误:

代码语言:javascript
运行
复制
  Error : "It appears that you are attempting to reference SparkContext from a broadcast "
    Exception: It appears that you are attempting to reference SparkContext from a broadcast variable, action, or transformation. SparkContext can only be used on the driver, not in code that it run on workers. For more information, see SPARK-5063.

有没有办法使用静态数据生成的modèle来预测流示例?

谢谢各位,我真的很感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-25 14:30:29

是的,您可以使用静态数据生成的模型。您所经历的问题根本与流无关。您根本不能在操作或转换中使用基于JVM的模型(请参见How to use Java/Scala function from an action or a transformation?来解释原因)。相反,您应该将predict方法应用于完整的RDD,例如在DStream上使用transform

代码语言:javascript
运行
复制
from pyspark.mllib.tree import RandomForest
from pyspark.mllib.util import MLUtils
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from operator import attrgetter


sc = SparkContext("local[2]", "foo")
ssc = StreamingContext(sc, 1)

data = MLUtils.loadLibSVMFile(sc, 'data/mllib/sample_libsvm_data.txt')
trainingData, testData = data.randomSplit([0.7, 0.3])

model = RandomForest.trainClassifier(
    trainingData, numClasses=2, nmTrees=3
)

(ssc
    .queueStream([testData])
    # Extract features
    .map(attrgetter("features"))
    # Predict 
    .transform(lambda _, rdd: model.predict(rdd))
    .pprint())

ssc.start()
ssc.awaitTerminationOrTimeout(10)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36838024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档