【问题标题】:MapReduce to bulk update a datastoreMapReduce 批量更新数据存储
【发布时间】:2012-02-09 18:45:21
【问题描述】:

我需要使用 Python 批量更新包含 CSV 文件(250,000 行)的数据存储。通过研究这个领域,我可以看到 MapReduce 可以解决这个问题。

我找到了一些显示类似操作的示例,但似乎找不到如何使用此库对数据存储进行简单批量更新的示例。

你知道这方面的任何例子吗,或者你能指出我正确的方向吗?

谢谢

http://code.google.com/p/appengine-mapreduce/wiki/GettingStartedInPython

【问题讨论】:

    标签: python google-app-engine mapreduce


    【解决方案1】:

    mapreduce 可以产生 mapreduce.operation.db.Put(entity) 作为迭代器,应用引擎可以非常有效地处理更新。或者您可以将 db.put(entities) 放入您的 mapreduce 方法中。在我看来,您正在从文件中读取数据并更新所有相关实体,mapreduce 可能不是最好的工具。

    【讨论】:

    • 嗨袁,是的,你是对的,我正在从文件中读取数据并更新数据存储中的所有相关实体。如果 Mapreduce 不是要使用的方法,你会建议什么方法?谢谢
    【解决方案2】:

    您还可以使用bulk uploader 将数据从 csv 上传到数据存储区。

    【讨论】:

    • 感谢谢伊的建议。我使用批量上传器将 CSV 文件上传到数据存储区,但我不确定批量上传器是否可以专门处理更新语句!
    • Shay,感谢您的回复,据我所知,bulkuploader 只能进行批量上传/下载。你有什么例子可以说明它是如何进行更新的吗?谢谢
    • @JimmySnatch 如果您使用相同的密钥,项目将被更新(或上传和覆盖)。那和“更新”有什么区别?
    • @Shay - 感谢您的建议,非常感谢,我可以确切地看到您在说什么,但问题是我在批量加载时找不到任何文档来设置密钥名称!
    • 请忽略我的上一篇文章,我真的很愚蠢!现在知道了,再次感谢您的建议。不敢相信解决方案这么简单,我把它弄得太复杂了!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2017-05-13
    相关资源
    最近更新 更多