默认情况下,mrJob以key [tab]输出格式存储密钥和输出值.
即使键(或值)为空,空或其他不感兴趣,也会发生这种情况.假设我的键,值对是None,{"a":1","b":1}.然后我得到这个:
None {"a":1, "b":2}
Run Code Online (Sandbox Code Playgroud)
有没有办法压制关键或价值?我只想要这个:
{"a":1, "b":2}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我已经尝试过了.我错过了什么......?
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,
),
]
Run Code Online (Sandbox Code Playgroud)
注意:我知道我不需要覆盖单步工作的步骤.这最终将是一个多步骤的工作,因此以这种方式构建类非常重要.
谢谢!
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |