只是为了学习的目的,我试图设置一个字典作为累加器中的全局变量添加功能效果很好,但我运行代码并将字典放在地图函数中,它总是返回空。pyspark中的累加器与字典作为全局变量
但是设置列表作为一个全局变量
class DictParam(AccumulatorParam):
def zero(self, value = ""):
return dict()
def addInPlace(self, acc1, acc2):
acc1.update(acc2)
if __name__== "__main__":
sc, sqlContext = init_spark("generate_score_summary", 40)
rdd = sc.textFile('input')
#print(rdd.take(5))
dict1 = sc.accumulator({}, DictParam())
def file_read(line):
global dict1
ls = re.split(',', line)
dict1+={ls[0]:ls[1]}
return line
rdd = rdd.map(lambda x: file_read(x)).cache()
print(dict1)
我的问题是地图总是空的 – user3341953