Pyspark pickle can’t pickle class解决办法
Pyspark使用自定义类对象作为键或值时,在序列化中会调用pickle,出现pickle can’t pickle class XXX时,可以重写自定义类的__getstate__和__setstate__方法,再把自定义类的py文件用sc.addPyFile加入到Pyspark中。
主要是把自定义的python文件加入到pyspark中,而pickle序列化与反序列化时,如果不写__getstate__与__setstate__则会调用默认的方法。