我想处理存储在s3中的大个文本文件。不幸的是,我不能简单地将列表与MultipleTextLineFiles源一起使用,因为方法代码变得太大而抛出了java.lang.RuntimeException。
我的最后一次尝试是使用包含文件列表的文本文件发送jar文件,然后使用“scala.io.Source.fromURL(getClass.getResource(filename))。getLines()。toSeq”读取该文件。 但是这会因抛出NoSuchElementException而失败。
有什么建议吗?
答案 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上执行您的工作)。