1
我有一個POJO需要發送到另一個端點(某些服務器)。 我決定使用avro做它。使用avro發送壓縮郵件
到目前爲止,我已經建立了我的Avro模式和產生我DataFileWriter:
GenericRecord user1 = new GenericData.Record(schema);
user1.put("name", "Jenny");
user1.put("favorite_color", "green");
GenericRecord user2 = new GenericData.Record(schema);
user2.put("name", "Kevin");
user2.put("favorite_color", "red");
DatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<GenericRecord>(schema);
DataFileWriter<GenericRecord> dataFileWriter = new DataFileWriter<GenericRecord>(datumWriter);
dataFileWriter.create(schema, schemaFile);
dataFileWriter.append(user1);
dataFileWriter.append(user2);
這是我到目前爲止,我錯過了以下內容:
我想對數據進行壓縮在發送之前,我寧願使用snappy來完成它,我應該如何將它與我的代碼結合起來?
UPDATE: 添加如下幾行:
// use snappy compression
CodecFactory codecFactory = CodecFactory.snappyCodec();
dataFileWriter.setCodec(codecFactory);
但我不知道但如果它的工作。