我正在尝试更新 pyspark 中的变量,并希望在其他方法中使用相同的变量。我在课堂上使用 @property ,当我在python中测试它时,它按预期工作但当我尝试在 pyspark 中实现它时,它不会更新变量。请帮我看看我做错了什么。
代码:
class Hrk(object):
def __init__(self, hrkval):
self.hrkval = hrkval
@property
def hrkval(self):
return self._hrkval
@hrkval.setter
def hrkval(self, value):
self._hrkval = value
@hrkval.deleter
def hrkval(self):
del self._hrkval
filenme = sc.wholeTextFiles("/user/root/CCDs")
hrk = Hrk("No Value")
def add_demo(filename):
pfname[]
plname[]
PDOB[]
gender[]
.......i have not mentioned my logic, i skipped that part......
hrk.hrkval = pfname[0]+"@#"+plname[0]+PDOB[0]+gender[0]
return (str(hrk.hrkval))
def add_med(filename):
return (str(hrk.hrkval))
filenme.map(getname).map(add_demo).saveAsTextFile("/user/cloudera/Demo/")
filenme.map(getname).map(add_med).saveAsTextFile("/user/cloudera/Med/")
在我的第一个方法调用(add_demo)中,我得到了正确的值但是当我想在第二种方法中使用相同的变量时,我得到无值。我不知道它为什么不更新变量。类似的逻辑在python中正常工作。