在python程序中运行pydop任务

ovfsdjhp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(218)

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 .

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题