2013-07-26 1 views
1

s3에 저장된 텍스트 파일 수를 처리하고 싶습니다. 불행하게도, 메소드 코드가 너무 커지고 java.lang.RuntimeException이 던져지기 때문에 MultipleTextLineFiles 소스와 함께리스트를 사용하기 만 할 수는 없다.스캘링에 여러 입력 파일

내 마지막 시도는 파일 목록이 들어있는 텍스트 파일로 jar 파일을 보내고 "scala.io.Source.fromURL (getClass.getResource (filename)). getLines(). toSeq" 하지만 NoSuchElementException이 발생하여 실패합니다.

제안 사항?

+0

코드를 게시 할 수 있습니까? –

+0

왜 모든 파일이 들어있는 디렉토리를 전달하지 않습니까? – Adrian

답변

1

는 클래스에 인수로 모든 파일 이름을 전달하는 시도하고 그에 따라합니다 (인수 목록을 통해 루프를, 또는 개별적으로 처리)을 처리 : 더없이 다른 무슨 말을해야합니다

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 정보를 제공하십시오.

0

모든 파일이 동일한 폴더에 있고 모두 처리해야하는 경우 폴더 경로를 입력 인수로 TextLine에 전달하십시오. 그 안에있는 모든 파일을 읽습니다 (s3의 경우 EMR에서 작업을 실행해야합니다).

+0

이 작업을 수행하려고하지만 java.io.FileNotFoundException이 계속 발생하여 입력 매개 변수가 "디렉터리"라고 계속 표시됩니다. 당신은 정교 할 수 있습니까? GitHub에서 Scalding repo와 함께 제공되는 WordCountJob.scala 예제를 실행하고 3 개의 입력 텍스트 파일이있는 입력 폴더를 전달했습니다. – Joe

+0

@thecomputerwhisperer 경로 이름 끝에 '/'표시가 있습니까? – piggybox

+0

그래, 여전히 같은 @piggybox. 로컬 모드에서 실행하려고한다는 사실과 관련이 있습니까? – Joe