2016-12-14 16 views
0
  1. 从笔记本UI
  2. 运行Databricks社区版火花集群试图培养NaiveBayes一个小小的数据样本时,面对这个错误的正确用法 - 类型错误:不受约束的方法并行化()必须与 SparkContext实例作为第一个参数来调用(代替了列表实例)
  3. 代码:什么方法并行化星火模块pyspark.mllib.classification

    from pyspark.mllib.classification import LabeledPoint, NaiveBayes 
    from pyspark import SparkContext as sc 
    data = [ 
    LabeledPoint(0.0, [0.0, 0.0]), 
    LabeledPoint(0.0, [0.0, 1.0]), 
    LabeledPoint(1.0, [1.0, 0.0])] 
    model = NaiveBayes.train(sc.parallelize(data)) 
    model.predict(array([0.0, 1.0])) 
    model.predict(array([1.0, 0.0])) 
    model.predict(sc.parallelize([[1.0, 0.0]])).collect() 
    

回答

0

这里的问题是你的榜样两线进口:

from pyspark import SparkContext as sc 

这是覆盖内置SparkContext实例与SparkContext类(存储在sc),导致后来sc.parallelize()通话失败。

在Databricks中,您不需要自己创建SparkContext;它在Databricks笔记本中自动预定义为sc。有关Databricks中预定义变量的更完整列表,请参阅https://docs.databricks.com/user-guide/getting-started.html#predefined-variables

+0

谢谢乔希罗森。这解决了这个问题。 –