나는 사용자 정의 쓰기 유형을 정의하고 있는데 현재이 같은 뭔가가 :맞춤 쓰기 가능 유형에 변수를 입력하는 가장 좋은 방법은 무엇입니까?
public static class MyType implements Writable {
private int value1;
private String value2;
// ... override code etc
}
내가 사용하는 int하고 문자열 또는 이러한 intWritable 및 텍스트의 사용을해야 하는가를? 필자가 보았던 예제는 필자가 사용했던 방법을 사용하는 경향이 있지만 Writable 유형을 사용하면 더 효율적으로 사용할 수있는 것처럼 보입니다.
사실'LongWritable'은'out.writeLong()'을 수행하고'Text'는 문자열을 구성하는 바이트 배열을 씁니다. 따라서 클래스 내에서 수행되는 추가 최적화는 없습니다. 프리미티브 대신에 객체 할당 오버 헤드를 사용하면됩니다. –
좋아, 그럼 사용자 정의 WritableComparable은 < T >입니다. 확실히 RawComparable을 텍스트로 다시 구현하는 문제를 겪고 싶어하는 사람은 아무도 없습니다. 그것을 사용하는 것이 낫다. –
'WritableComparable'을 사용한다면 compareTo 함수로 간단하게 문자열을 비교할 수 있습니다. 자신 만의'RawComparator'를 구현할 필요가 있다면, 기존 구현을 우회하거나 직접 작성할 수 있습니다. 텍스트는 바이트 배열 만 비교합니다. 구현할 특별한 것은 없습니다. –