在将输入发送到mrjob mapper之前,如何过滤s3文件?

2024-06-02 05:01:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试映射reduce日志,我想在EMR中处理之前按文件名过滤bucket中的所有日志。另外,有些文件是tar目录,我希望mrjob解压它,然后过滤其中的文件,只解析相关的文件。在

知道如何根据文件名从MrJob过滤bucket s3吗? 我找到了mapper_pre_filter!方法,但它只逐行筛选输入。在


Tags: 文件方法目录reduces3bucket文件名tar
1条回答
网友
1楼 · 发布于 2024-06-02 05:01:52

这里有几种可能性。在

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

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

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

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

相关问题 更多 >