maven依赖avro_如何使用maven进行avro序列化
maven導入avro:
org.apache.avro
avro
1.7.7
maven導入avro的構建插件:
org.apache.avro
avro-maven-plugin
1.7.7
generate-sources
schema
protocol
idl-protocol
${project.basedir}/src/main/avro/
${project.basedir}/src/main/java/
org.apache.maven.plugins
maven-compiler-plugin
1.7
1.7
在${project.basedir}/src/main/avro/ 下導入json文件,就是所謂的數據schema
{"namespace":"user_machine_learning","type":"record","name":"product","fields":[
{"name":"product_id","type":"string","default":"null"},
{"name":"company_name","type":"string","default":"null"},
{"name":"product_info","type":"string","default":"null"},
{"name":"direction","type":"string","default":"null"}
]
}
maven和schema構建好之后需要進行install,然后就會在 ${project.basedir}/src/main/avro/ 目錄下產生構建好的序列化代碼,這個代碼只需要使用java進行調用即可
使用java進行序列化和反序列化的操作:
public classTest_avro {public static void main(String[] args) throwsIOException {//TODO 序列化操作
product pro =product.newBuilder().build();
pro.setProductId("1");
pro.setCompanyName("這是一個測試");
pro.setProductInfo("測試的詳細說明");
pro.setDirection("1");//將生成的數據保存到本地文件中
File file = new File("/Users/niutao/Desktop/avro_test/user.avro");
DatumWriter productDatumWriter = new SpecificDatumWriter(product.class);
DataFileWriter dataFileWriter = new DataFileWriter(productDatumWriter);
dataFileWriter.create(product.getClassSchema() , file);
dataFileWriter.append(pro);
dataFileWriter.close();//TODO 反序列
DatumReader productDatumReader = new SpecificDatumReader(product.class);
DataFileReader productDataFileReader = new DataFileReader(file , productDatumReader);
product pro_reader= null;while(productDataFileReader.hasNext()){
pro_reader=productDataFileReader.next();
System.out.println(pro_reader);
}
}
}
總結
以上是生活随笔為你收集整理的maven依赖avro_如何使用maven进行avro序列化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: was这么做的负载均衡_中间件(WAS、
- 下一篇: 去雾综述_【综述】图像去雾的前世今生