我的印象是 aByteArrayOutputStream
的内存效率不高,因为它的所有内容都存储在内存中。
同样,调用toByteArray
大流似乎“扩展性很差”。
那么,为什么在 Tom White 的书Hadoop: the Definitive Guide中的示例中的示例中同时使用它们:
ByteArrayOutputStream out = new ByteArrayOutputStream;
Decoder decoder = DecoderFactory().defaultFactory().createBinaryDecoder(out.toByteArray(), null);
“大数据”不是 Avro 的标准吗?我错过了什么?
编辑 1:我正在尝试做的事情- 假设我正在通过 websocket 流式传输 avros。如果我想反序列化多条记录,而不仅仅是放入它自己的一条记录,该示例会是什么样子ByteArrayOutoputStream
?
有没有更好的方法来提供BinaryDecoder
字节 []?或者也许是不同类型的流?或者我应该为每个流发送 1 条记录,而不是加载具有多条记录的流?