在自定义可写类型中键入变量的最佳方法是什么



我正在定义一个自定义可写类型,目前我有这样的东西:

public static class MyType implements Writable {
  private int value1;
  private String value2;
  // ... override code etc 
}

我应该使用 int 和 String 还是应该使用 intWriable 和 Text?我看到的示例倾向于使用我采用的方法,但似乎使用可写类型可以更有效率。

你可以

使用int,string等。这完全没问题。在实现可写时,您需要覆盖readFields(DataInput in)write(DataOutput out)方法。您需要以相同的顺序读取写入变量。这就是序列化发生的地方。而且您无需费力地制作可写类型的变量。

这完全没问题,因为您是通过覆盖读写来进行序列化的。您可以使用readInt()writeInt()等其他基元或字符串编写ints等基元。

例如,TextLongWritables主要用于具有一些可以使用的内置类型。如果你需要组合对象,你可以使用基元,TextLongWritable只不过是一种可序列化的包装器。

我倾向于像文本一样编写可写内容,因为这些类中已经对 I/O 进行了一些大量优化。 但是,最好的办法是尝试两种方式,看看哪一种表现更好。

相关内容

  • 没有找到相关文章

最新更新