Я использую искру 1.4.1. Когда я пытаюсь транслировать модель случайного леса он показывает мне эту ошибку:Широковещательная модель Random-Forest в PySpark
Traceback (most recent call last):
File "/gpfs/haifa/home/d/a/davidbi/codeBook/Nice.py", line 358, in <module>
broadModel = sc.broadcast(model)
File "/opt/apache/spark-1.4.1-bin-hadoop2.4_doop/python/lib/pyspark.zip/pyspark/context.py", line 698, in broadcast
File "/opt/apache/spark-1.4.1-bin-hadoop2.4_doop/python/lib/pyspark.zip/pyspark/broadcast.py", line 70, in __init__
File "/opt/apache/spark-1.4.1-bin-hadoop2.4_doop/python/lib/pyspark.zip/pyspark/broadcast.py", line 78, in dump
File "/opt/apache/spark-1.4.1-bin-hadoop2.4_doop/python/lib/pyspark.zip/pyspark/context.py", line 252, in __getnewargs__
Exception: It appears that you are attempting to reference SparkContext from a broadcast variable, action, or transforamtion. SparkContext can only be used on the driver, not in code that it run on workers. For more information, see SPARK-5063.
пример кода я пытаюсь выполнить:
sc = SparkContext(appName= "Something")
model = RandomForest.trainRegressor(sc.parallelize(data), categoricalFeaturesInfo=categorical, numTrees=100, featureSubsetStrategy="auto", impurity='variance', maxDepth=4)
broadModel= sc.broadcast(model)
Если кто-то может помочь мне с этим я буду будьте очень благодарны! Спасибо большое!
Есть ли причина, почему вам нужно, чтобы передать всю модель? Модель может запускать прогнозы на RDD входов. – Magsol
существует более одной модели (в моем случае каждая модель определяет группу). каждый образец должен получить прогноз от каждой модели, чтобы узнать, какая группа он больше всего. Я обрабатываю большие данные, поэтому мне нужно передавать модели на карту. – dadibiton