2010-01-31 5 views
1

Apache Hadoop map-reduce 프로그램에서 매퍼 출력의 키로 세트/목록을 사용하기위한 옵션은 무엇입니까?Hadoop의 중간 키에 대해 set/list 데이터 유형 사용

초기 아이디어는 키 유형으로 ArrayWritable을 사용했지만, 허용되지 않습니다. 클래스는 WritableComparable을 구현하지 않으므로 허용되지 않습니다. 맞춤 클래스를 정의해야합니까, 아니면 Hadoop 라이브러리에서 키처럼 작동 할 수있는 클래스와 같은 다른 클래스가 있습니까?

+0

매퍼에서 키로 목록/세트를 사용하는 유스 케이스를 제공 할 수 있습니다. –

+0

@PradyumnaMohapatra 제 질문은 4 년이 넘었지만 중간 중간 값은 중간 값이 함께 구입 한 제품 세트였습니다. 이 하위 집합의 주문 ID. 'reduce' 메소드는 각기 다른 일련의 제품들의 발생을 계산할 것입니다. –

답변

1

ArrayWritable이 WritableComparable의 상위 인터페이스 인 Writable로 구현되었다고 생각했습니다.

ArrayWritable을 하위 클래스로 만들었습니까? 설명서에 따라 하위 클래스를 만들어 배열에 저장할 객체의 유형을 설정할 수 있도록해야합니다. 예 :

public class TextArrayWritable extends ArrayWritable { 

    public TextArrayWritable() { 
     super(Text.class); 
    } 
} 

체크 아웃 ArrayWritable javadocs.

+1

'ArrayWritable'은'Writable'을 구현하지만'WritableComparable'을 구현하지는 않습니다. 분명히 클래스가 키에 사용되기 위해서는 후자가 필요합니다. 나는'ArrayWritable'을 서브 클래스 화하고'WritableComparable' 인터페이스에 대한 지원을 추가 할 수 있습니다. –

+0

아 조금 더 가까이 죄송합니다. hadoop은 키를 정렬 할 수 있어야하기 때문에 키에는 WritableComparable이 필요합니다. 예, compareTo 메소드를 오버라이드 (override) 할 필요가있는 WritableComparable 인터페이스를 구현할 수 있습니다. 희망이 도움이됩니다. –

관련 문제