python - 在将输入发送到 mrjob 映射器之前如何过滤 s3 文件?

标签 python amazon-s3 mapreduce emr mrjob

我正在尝试 MapReduce 日志,并且希望在 EMR 中处理之前按文件名过滤存储桶中的所有日志。另外,有些文件是 tar 目录,我希望 mrjob 将其解压缩,然后过滤其中的文件以仅解析相关的文件。

知道如何通过 MrJob 中的文件名过滤存储桶 s3 ? 我找到了mapper_pre_filter !方法,但它只能逐行过滤输入。

最佳答案

这里有几种可能性。

  • 在MRjob中运行作业时,您可以指定在命令行中输入的文件。如果您希望仅运行 .json 文件,则可以通过指定 .json 来实现,或者如果您想运行以 Logs6-24-14 开头并以 .txt 结尾的所有内容,则可以指定 Logs6-24-14 .txt

  • 或者,您可以将所需的文件作为数据传递;这涉及到 UNIX 管道,并且功能非常强大。

  • 最后,也可能是最灵活的,您可以在 MRjob 文件中编写 Python 代码,该代码在实际作业之前运行,从而预处理数据。你几乎可以用这种方式做任何事情。它将进入这里的代码:

if __name__ == '__main__':
    Arbitrary_code_function.run()
    MRJOB_Jobname.run()

关于python - 在将输入发送到 mrjob 映射器之前如何过滤 s3 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174208/

相关文章:

python - 使用 Connector/Python 调用带有反引号名称的 MySQL 存储过程

javascript - S3 下载文件名中带有逗号的图像会导致 "net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION"

logging - 如何从我的 map/reduce 应用程序登录?

java - 如何制作两个文件的学习列表

python - Django - 无法运行 makemigrations : "no such table" even after running reset_db

python - 如何在 Jupyter Notebook 中从 URL 插入图像(Markdown)

php - 从 Amazon S3 自动打包 Javascript/CSS?

javascript - 通过 javascript 和 zip 下载多个 AWS s3 文件的正确方法

mongoDB,求和两个字段的乘积

python - 平滑拟合函数