如何让我的 Scalding 作业在其输入桶上递归运行?

How can I make my Scalding job operate recursively on its input bucket?

我有一份 Scalding 工作,运行 在 EMR 上。它 运行 在包含多个文件的 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/*/*/*