【问题标题】:mrjob - automatic tar of source directorymrjob - 源目录的自动 tar
【发布时间】:2013-12-18 16:20:49
【问题描述】:

我使用 mrjob 创建了一个 Amazon EMR 作业。我的 mapreduce 作业继承自一个通用帮助程序类,以使我更容易解析我正在解析的 apache 日志,我继承的类在多个 mapreduce 作业之间共享,所以这是我的文件结构:

__init__.py
count_ip.py (mapreduce job)
common/apache.py   (base class count_ip.py inherits from)

我想从本地计算机自动 tar 完整的 src 目录,并让 mrjob 将其上传到 Amazon EMR。现在我有一个带有公共目录的 tar 文件 common.tar.gz 。这个tar我在mrjob.conf中添加到我的python包中,它工作正常,我想做的是自动创建common.tar.gz,是否支持mrjob来处理这个,如果没有,我有什么选择?

【问题讨论】:

    标签: python amazon emr mrjob


    【解决方案1】:

    我不是超级mrjobber,最近几个月才开始这样做,但我使用python的标准tarfile包来做到这一点。

    def tar_and_gzip(roots, filename):
        """
        Tars all files starting from roots provided and gzips result
        """
        with tarfile.open(filename, 'w:gz') as tarball:
            for root in roots:
                tarball.add(root, arcname=basename(root))
    

    您可以在运行作业之前单独运行它,也可以编写一个同时执行这两种操作的脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      相关资源
      最近更新 更多