pydoop文档中有许多示例显示如何从shell运行pydoop脚本,但我需要在python系统的函数中运行pydoop任务。
以下是函数示例:
def mrb2(inp, out):
class CountMapper(api.Mapper):
def map(self, context):
context.emit(context.value.split()[0], 1)
class CheckReducer(api.Reducer):
def reduce(self, context):
context.emit(context.key, sum(context.values))
pipes.run_task(api.Factory(CountMapper, CheckReducer), istream=inp, ostream=out)
这个 inp
以及 out
已打开纯文本文件:
with open('input.txt') as inp, open('output.txt', 'w') as out:
...
但当我尝试运行时,我得到一个错误:
pipes.run_task(api.Factory(CountMapper, CheckReducer), istream=inp, ostream=out)
TypeError: object() takes no parameters
我做错什么了?
p、 s.模块 api
, pipes
进口自 pydoop.mapreduce
.
暂无答案!
目前还没有任何答案,快来回答吧!