2014-11-17 3 views
1

스파크 + 자바 프로그래밍에 대한 도움이 필요합니다. I는 전화와 다른 큰 하나가 기본적으로, 나는이 첫 번째 (A)와 두 번째 (B)에서에 반복 할 필요 B. 라고, HDFS에 큰 파일이스파크 : 2 파일 반복 읽기

: 이 내 문제입니다 같은 순간. 내가 그런 일을 의미한다 (이것은 의사) :

a = read.A; //Read record from A 
b = read.B; // Read record from B 
while(a != EOF) 
{ 
    if (a > b) 
    { 
     b= read.B; 
     // Write Output in some way 
    } 
    else 
    { 
     a= read.A; 
     //Write output in some way 
    } 

} 

는 사용 스파크 + 자바와 같은 뭔가를 possibile인가요?

답변

1

어쩌면 당신은 아파치 스파크로 할 수 있지만, 너는하면 안된다.

지도 Spark, Hadoop 등과 같은 Reduce 프레임 워크는 큰 작업을 여러 개의 작은 작업으로 분할하여 병렬로 실행할 수 있도록 고안되었습니다. 속도 우위는 부분적으로 작업자 노드가 상태를 동기화 할 필요가 없다는 사실에 기반하기 때문에 작업이 처리되는 순서에 대해 어떤 보증도 없습니다.

때문에 귀하의 문제가 맞지 않는 : 그것은 마지막으로 읽은 값 (교대에서 검색 또는 B)를 알 필요가

  • . 그것은 공유 된 상태입니다. 당신이 성능 향상이 필요한 경우 A 또는 B

을 읽을 수있는 경우는 미리 알 수 없기 때문에

  • 당신은 당신이 다른 곳을보고있다, 읽기 단계를 parallize 수 없습니다. 병목 현상 (메모리, 디스크 액세스, ...)을 파악하십시오.

  • +0

    Join의 출력은 A의 첫 번째 행이 B의 첫 번째 행과 함께있는 엘레멘트 집합이됩니다. – Edge7

    +0

    확인. 내 문제는 내가 동등한 가입에 관심이 없다는 것이다. 제 의사 코드를 살펴 보시면됩니다. 2 파일을 반복하고 파일 A에서 튜플을 잡고 파일 B와 viceversa를 반복하는 데 관심이 있습니다. – Edge7

    +0

    나는 그들을 반복하고, A가 B를 A로 잡고 B가 A Edge7