我有一个在EMR上运行的Scalding作业。它在包含多个文件的S3存储桶上运行。源看起来像这样:
MultipleTextLineFiles("s3://path/to/input/").read
/* ... some data processing ... */
.write(Tsv("s3://paths/to/output/))
我想使其在嵌套存储桶中运行,即包含存储桶的存储桶,存储桶本身包含文件。它应该处理内部存储桶中的所有文件。如果我尝试在不更改源代码的情况下执行此操作,则会收到以下错误消息:
java.io.IOException: Not a file: s3://path/to/innerbucket
如何更改此作业以使其在嵌套存储桶上运行?
最佳答案
使用通配符:
s3://path/to/input/*
如果您具有多层嵌套,请使用多个通配符来访问文件:
s3://path/to/input/*/*/*
关于hadoop - 如何使我的Scalding作业在其输入存储桶上递归操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37030744/