我有一個惱人的問題使用jupyter筆記本與火花。如何用PySpark和Jupyter分配類
我需要定義內的筆記本電腦的自定義類,並用它來執行一些地圖操作
from pyspark import SparkContext
from pyspark import SparkConf
from pyspark import SQLContext
conf = SparkConf().setMaster("spark://192.168.10.11:7077")\
.setAppName("app_jupyter/")\
.set("spark.cores.max", "10")
sc = SparkContext(conf=conf)
data = [1, 2, 3, 4, 5]
distData = sc.parallelize(data)
class demo(object):
def __init__(self, value):
self.test = value + 10
pass
distData.map(lambda x : demo(x)).collect()
它提供了以下錯誤:
PicklingError: Can't pickle : attribute lookup main.demo failed
我知道這個錯誤是關於,但我找不出解決辦法..
我試過了:
- 在筆記本外定義一個demo.py python文件。它的工作原理,但它是這樣一個醜陋的解決方案...
- 創建一個動態模塊like this,然後再導入之後......這給了同樣的錯誤
會有什麼解決辦法?...我想一切都在同類筆記本
它是可以改變的東西工作:
- 方式火花的作品,也許有些泡菜配置
- 東西代碼...使用一些靜態魔術方法