gpt4 book ai didi

mrjob:抑制reducer输出中的键(或值)

转载 作者:行者123 更新时间:2023-12-03 03:46:17 25 4
gpt4 key购买 nike

默认情况下,mrJob 以 key[tab] 输出格式存储输出中的键和值。

即使键(或值)为空、null 或其他不感兴趣的情况,也会发生这种情况。假设我的键值对是 None, {"a":1", "b":1}。然后我得到:

None    {"a":1, "b":2}

有没有办法抑制键或值?我只想要这个:

{"a":1, "b":2}

顺便说一句,我已经尝试过了。我是不是错过了什么……?

class MyMrJobClass(MRJob):
OUTPUT_PROTOCOL = mrjob.protocol.JSONProtocol

def step1_mapper(self, _, line):
...
yield my_key, my_value

def step1_reducer(self, key, values):
for v in values:
...
yield None, my_data

def steps(self):
return [
self.mr(
mapper=self.step1_mapper,
reducer=self.step1_reducer,
),
]

注意:我知道我不需要覆盖单步作业的步骤。这最终将是一个多步骤的工作,因此以这种方式构建类很重要。

谢谢!

最佳答案

您可以使用 mrjob.protocol.JSONValueProtocol (注意 Value。请参阅 documentation )作为输出协议(protocol),而不是 mrjob.protocol.JSONProtocol .

该文档包含有关使用 custom protocols 的更多信息.

关于mrjob:抑制reducer输出中的键(或值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16221915/

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