在Python程序中运行pydoop任务

时间:2016-01-28 17:07:23

标签: python python-2.7 hadoop

PyDoop documentation中有很多例子说明如何从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)

inpout打开纯文本文件:

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导入的模块pipespydoop.mapreduce

0 个答案:

没有答案