Scalding中的多个输入文件

时间:2013-07-26 13:35:40

标签: scalding

我想处理存储在s3中的个文本文件。不幸的是,我不能简单地将列表与MultipleTextLineFiles源一起使用,因为方法代码变得太大而抛出了java.lang.RuntimeException。

我的最后一次尝试是使用包含文件列表的文本文件发送jar文件,然后使用“scala.io.Source.fromURL(getClass.getResource(filename))。getLines()。toSeq”读取该文件。 但是这会因抛出NoSuchElementException而失败。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

尝试将所有文​​件名作为args传递给Class,然后相应地处理它们(遍历args列表,或单独处理它们):

import com.twitter.scalding.{ Args, Job }

class someScalaClass(args: Args) extends Job(args) {
   args.restrictTo(Set("arg1", "arg2") 
   val someFile = args.getOrElse("arg1").read
}
如果没有更多的背景信息,我不确定还有什么要说的,如果你可以请编辑并提供moar细节

答案 1 :(得分:0)

如果您的所有文件都在同一个文件夹中,并且您需要处理所有文件,只需将文件夹路径作为输入arg传递给TextLine。它将读取其中的所有文件(对于s3,您需要在EMR上执行您的工作)。