我有一个恼人的问题使用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,然后再导入之后......这给了同样的错误
会有什么解决办法?...我想一切都在同类笔记本
它是可以改变的东西工作:
- 方式火花的作品,也许有些泡菜配置
- 东西代码...使用一些静态魔术方法