所以,我一直在尝试了几天,现在运行在星火映射函数内部ML算法。 我发布了一个更具体的问题,而是引用星火的ML算法使我有以下错误:
AttributeError: Cannot load _jvm from SparkContext. Is SparkContext initialized?
很显然,我不能引用SparkContext
里面apply_classifier
功能。 我的代码是类似于在前面的问题,我问,但至今还没有找到一个解决我所期待的建议:
def apply_classifier(clf):
dt = DecisionTreeClassifier(labelCol="indexedLabel", featuresCol="indexedFeatures", maxDepth=3)
if clf == 0:
clf = DecisionTreeClassifier(labelCol="indexedLabel", featuresCol="indexedFeatures", maxDepth=3)
elif clf == 1:
clf = RandomForestClassifier(labelCol="indexedLabel", featuresCol="indexedFeatures", numTrees=5)
classifiers = [0, 1]
sc.parallelize(classifiers).map(lambda x: apply_classifier(x)).collect()
我已经尝试使用flatMap
而不是map
,但我得到NoneType object is not iterable
。
我也想传递一个广播的数据集(这是一个数据帧)作为内部参数apply_classifier
功能。 最后,是有可能做什么,我试图做的? 有什么选择?