我使用Python训练了一个随机森林算法,并希望将它应用于PySpark的大数据集 .
我首先加载了训练有素的sklearn RF模型(使用joblib),将包含这些功能的数据加载到Spark数据帧中,然后添加一个包含预测的列,并使用用户定义的函数:
def predictClass(features):
return rf.predict(features)
udfFunction = udf(predictClass, StringType())
new_dataframe = dataframe.withColumn('prediction',
udfFunction('features'))
它需要花费很多时间才能运行,是否有更有效的方法来做同样的事情? (不使用Spark ML)
1 回答
sklearn RF模型在酸洗时可能非常大 . 在任务调度期间频繁的模型挖掘/解开可能会导致问题 . 您可以考虑使用广播变量 .
来自official document: