在Python程序中运行pydoop任务
这里有许多示例演示如何从shell运行PyDoop脚本,但我需要在python系统的函数中运行PyDoop任务 下面是函数的示例:在Python程序中运行pydoop任务,python,python-2.7,hadoop,Python,Python 2.7,Hadoop,这里有许多示例演示如何从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
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
,管道
从pydoop.mapreduce
导入