4
我錯過了Yelp的mrjob job庫的一些明顯的東西。設置MRJob類幾乎非常簡單。通過file或stdin運行也是如此。但是,我怎樣才能將本地或s3文件中的輸入從文件中更改爲s3中的密鑰?如何將s3對象名稱用作MRJob映射器的輸入,而不是s3對象本身?
就是這樣。假設我想指望在我的S3存儲桶以字符串「富」開頭的所有對象:
import re
class MRCountS3Objects(MRJob):
define mapper(self, _, botoS3Key):
if re.match('^foo', botoS3Key.name):
yield 'foo', 1
define reduce(self, name, occurrences):
yield name, sum(occurrences)
這是一個高度人爲的例子,但你可能明白我的意思。我如何告訴MRJob在s3對象流上操作,忽略對象的內容?我看到S3Filesystem.get_s3_keys()method,它使我完全得到我需要的流,但我不確定該從哪裏去。