Python:如何在MapReduce(MRJob)中索引?

2024-05-19 23:03:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想这样索引reducer的结果:

1   "EZmocAborM6z66rTzeZxzQ"
2   "FIk4lQQu1eTe2EpzQ4xhBA"
3   "myql3o3x22_ygECb8gVo7A"
4   "ojovtd9c8GIeDiB8e0mq2w"
5   "uVEoZmmL9yK0NMgadLL0CQ"

我的PythonMRJob代码:

^{pr2}$

但这会导致:

^{3}$

我知道这是因为减速机在不同的机器上运行。在

有没有办法在减速器之间共享计数变量?在


Tags: 代码机器计数办法减速机reducer减速器pr2
1条回答
网友
1楼 · 发布于 2024-05-19 23:03:02

要对reducer输出进行排序,必须将结果加载到内存中,这可以使用runner来完成。将代码存储到它自己的.py文件中(用户数据中心.py)转轮和减速机实现输出分类:

from MRUserDic import MRUserDic

reducer_output = []
mr_job = MRUserDic(args=['input_file.txt'])
with mr_job.make_runner() as runner:
    runner.run()
    for line in runner.stream_output():
        reducer_output.append(line)

    sorted_output = sorted(reducer_output)

只需替换输入_文件.txt'以及输入文件的位置。在

相关问题 更多 >