我想通过以下步骤执行mapreduce作业:
1)从通过html表格输入的文件中映射
2)从缩减中减少并创建新文件
以下是我目前如何设置管道。主要问题是如何将文件传递给RecordsReader。
RecordsReader有一个参数文件,要传递“包含要读取的文件的字符串或包含要读取的多个文件串的列表”。 -Google
class EPNPipeline(base_handler.PipelineBase):
def run(self, filekey):
logging.debug("filename is %s" % filekey)
output = yield mapreduce_pipeline.MapreducePipeline(
"EPN",
"map_process_epn",
"reduce_process_epn",
"mapreduce.input_readers.RecordsReader",
"mapreduce.output_writers.BlobstoreOutputWriter",
mapper_params={
"files": filekey,
},
reducer_params={
"mime_type": "text/plain",
},
shards=24)
yield StoreOutput("EPN", filekey, output)
我已经尝试将文件作为文件对象和字符串表示形式传递但是既不起作用也没有关于使用不同输入/输出读写器的文档。
非常感谢任何帮助或指示。
由于
答案 0 :(得分:1)
描述的示例应用程序in the documentation显示了如何执行此操作。您需要将文件上传到blobstore,然后将blob密钥传递给mapreduce。