pythonspark任务_如何使用Python在apachespark中更改任务映射或reduce中的全局变量值...

我有以下代码:import sys

from pyspark import SparkContext

def mapper(array):

aux = []

array = str(array)

aux = array.split(' | ')

return {(aux[0][:-1],aux[1][:-1]): [(aux[0][1:],aux[1][1:])]}

def reducer(d1, d2):

for k in d1.keys():

if d2.has_key(k):

d1[k] = d1[k] + d2[k]

d2.pop(k)

d1.update(d2)

return d1

if __name__ == "__main__":

if len(sys.argv) != 2:

print("Usage: bruijn ")

exit(-1)

sc = SparkContext(appName="Assembler")

kd = sys.argv[1].lstrip('k').rstrip('mer.txt').split('d')

k, d = int(kd[0]), int(kd[1])

dic = sc.textFile(sys.argv[1],False).map(mapper).reduce(reducer)

filepath = open('DeBruijn.txt', 'w')

for key in sorted(dic):

filepath.write(str(key) + ' -> ' + str(dic[key]) + '\n')

filepath.close()

print('De Bruijn graph successfully generated!')

sc.stop()

我想在main中创建一个名为vertexes的空列表,并在其中添加mapper append元素。但是使用关键字global是行不通的。我尝试过使用累加器,但累加器的值无法在任务中获取。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值