0

カスタムの書き込み可能な型を定義していますが、現在、次のようなものがあります。

public static class MyType implements Writable {
  private int value1;
  private String value2;

  // ... override code etc 
}

int と String を使用する必要がありますか、それとも intWritable と Text を使用する必要がありますか? 私が見た例では、私が採用した方法を使用する傾向がありますが、Writable 型を使用するとより効率的になるようです。

4

3 に答える 3

1

読み取りと書き込みをオーバーライドしてシリアル化を行っているため、これはまったく問題ありません。他のプリミティブや文字列と一緒にints使用するreadInt()などのプリミティブを作成できます。writeInt()

TextLongWritablesたとえば、主に使用できる組み込み型をいくつか持つために使用されます。オブジェクトを構成する必要がある場合は、プリミティブを使用してもまったく問題ないTextLongWritable、一種のシリアライズ可能なラッパーに他なりません。

于 2012-07-03T08:08:25.203 に答える
1

You can use int, string etc. That is perfectly fine. and as you are implementing Writable you will need to override readFields(DataInput in) and write(DataOutput out) method. You will need to read write varibles in same order. That is where serialisation take place. And you don't need to take pain to make variables of writable type.

于 2012-07-03T09:09:19.427 に答える
-1

Writable を Text のように構成する傾向があります。これは、これらのクラスで行われた I/O の大幅な最適化があるためです。ただし、最善の策は、両方の方法を試して、どちらが優れているかを確認することです.

于 2012-07-03T08:13:19.917 に答える