1

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

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

有什么建议么?

4

2 回答 2

1

尝试将所有文​​件名作为 args 传递给一个类,然后相应地处理它们(遍历 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 详细信息

于 2013-12-19T22:06:00.703 回答
0

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

于 2014-05-09T17:27:32.283 回答