我在python中编写了一个实现分类器的类.我想使用Apache Spark来使用此分类器并行化大量数据点的分类.
但是,当我执行以下操作时:
import BoTree
bo_tree = BoTree.train(data)
rdd = sc.parallelize(keyed_training_points) #create rdd of 10 (integer, (float, float) tuples
rdd = rdd.mapValues(lambda point, bt = bo_tree: bt.classify(point[0], point[1]))
out = rdd.collect()
Run Code Online (Sandbox Code Playgroud)
Spark失败并出现错误(我认为只是相关的一点):
File "/root/spark/python/pyspark/worker.py", line 90, in main
command = pickleSer.loads(command.value)
File "/root/spark/python/pyspark/serializers.py", line 405, in loads
return cPickle.loads(obj)
ImportError: No module named BoroughTree
Run Code Online (Sandbox Code Playgroud)
谁能帮我?有点绝望......
谢谢
我希望能够
这听起来很简单 - 我的代码是:
minx = minx = input_numeric(1, 'Min x-val')
maxx = input_numeric(1, 'Max x-val')
data.frame(train.dt) %>%
ggvis(x = ~plot_idx, y = ~val) %>%
layer_lines() %>% add_axis('x') %>%
scale_numeric('x', domain = c(minx, maxx), clamp = T)
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.我收到此错误消息:
"r [i1]中的错误 - r [-length(r):-(length(r) - lag + 1L)]:二元运算符的非数字参数".
如果我用例如1和10替换domain参数中的minx和maxx,我的图表就可以很好地绘制(但是是静态的).有任何想法吗?
谢谢!
我正在使用Apache Spark的PySpark在本地机器上通过iPython Notebook对一些代码进行原型设计.我写了一些似乎工作得很好的代码,但是当我对它进行简单的更改时,它会中断.
下面的第一个代码块有效.第二个块因给定错误而失败.真的很感激任何帮助.我怀疑这个错误与序列化Python对象有关.错误说它不能Pickle TestClass.我无法找到有关如何使我的班级发泡的信息.文档说"通常你可以挑选任何对象,如果你可以挑选该对象的每个属性.类,函数和方法不能被腌制 - 如果你挑选一个对象,对象的类不被pickle,只是一个字符串,标识什么这对于大多数泡菜来说都很好(但请注意关于长期存放泡菜的讨论)." 我不明白这一点,因为我已经尝试用datetime类替换我的TestClass,事情似乎工作正常.
无论如何,代码:
# ----------- This code works -----------------------------
class TestClass(object):
def __init__(self):
self.teststr = 'Hello'
def __str__(self):
return self.teststr
def __repr__(self):
return self.teststr
def test(self):
return 'test: {0}'.format(self.teststr)
#load multiple text files into list of RDDs, concatenate them, then remove headers
trip_rdd = trip_rdds[0]
for rdd in trip_rdds[1:]:
trip_rdd = trip_rdd.union(rdd)
#filter out header rows from result
trip_rdd = trip_rdd.filter(lambda r: r != header)
#split the line, then convert each element to a …Run Code Online (Sandbox Code Playgroud)