gpt4 book ai didi

mrjob - mrjob 任务可以输出集合吗?

转载 作者:行者123 更新时间:2023-12-05 00:33:07 24 4
gpt4 key购买 nike

我尝试从 mrjob 中的映射器输出 python 集。我相应地更改了组合器和 reducer 的函数签名。

但是,我收到此错误:

Counters From Step 1
Unencodable output:
TypeError: 172804

当我将集合更改为列表时,此错误消失。 mrjob 中的映射器是否无法输出某些 python 类型?

最佳答案

使用协议(protocol)(通常是 Raw、JSON 或 Pickle)在 MapReduce 的各个阶段之间移动值。

您必须确保您选择的协议(protocol)可以正确处理正在移动的值。我会想象一组没有默认的 JSON 表示,也许也没有原始表示?

尝试将 INTERNAL_PROTOCOL 设置为 Pickle,如下所示:

class yourMR(MRJob):
INTERNAL_PROTOCOL = PickleProtocol

def map(self, key, value):
# mapper

def reduce(self, key, value):
# reducer

注意:MRJob 会为你处理酸洗和解酸,所以不用担心这方面。如有必要,您还可以设置 INPUT 和 OUTPUT 协议(protocol)(对于多个阶段,或设置 reducer 的输出)。

关于mrjob - mrjob 任务可以输出集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com