如何使用maven进行avro序列化
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.7.7</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>1.7.7</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
<goal>protocol</goal>
<goal>idl-protocol</goal>
</goals>
<configuration>
<!-- 源目录,用于存放 avro的schema文件及protocol文件 ,如果没加如下配置,那么默认从/src/main/avro下面找avsc文件,生成的java文件放到target/generated-sources/avro下面-->
<sourceDirectory> ${project.basedir}/src/main/avro/</sourceDirectory>
<outputDirectory> ${project.basedir}/src/main/java/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
{
   "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"}
    ]
}
public class Test_avro {
    public static void main(String[] args) throws IOException {
        //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<product> productDatumWriter = new SpecificDatumWriter<product>(product.class);
        DataFileWriter<product> dataFileWriter = new DataFileWriter<product>(productDatumWriter);
        dataFileWriter.create(product.getClassSchema() , file);
        dataFileWriter.append(pro);
        dataFileWriter.close();
        //TODO 反序列
        DatumReader<product> productDatumReader = new SpecificDatumReader<product>(product.class);
        DataFileReader<product> productDataFileReader = new DataFileReader<product>(file , productDatumReader);
        product pro_reader = null;
        while (productDataFileReader.hasNext()){
            pro_reader = productDataFileReader.next();
            System.out.println(pro_reader);
        }
    }
}
如何使用maven进行avro序列化的更多相关文章
- Avro序列化与反序列化
		
4.Avro实现序列化的步骤 1.创建maven工程,引入pom文件(定义属性和依赖信息,以及定义Avro插件) 2.根据Avro插件的要求,更改maven工程结构,需要创建一个source/main ...
 - avro序列化详细操作
		
Intellij 15.0.3 Maven avro 1.8.0 Avro是一个数据序列化系统. 它提供以下: 1 丰富的数据结构类型 2 快速可压缩的二进制数据形式 3 存储持久数据的文件容器 4 ...
 - hadoop深入研究:(十六)——Avro序列化与反序列化
		
转载请写明来源地址:http://blog.csdn.net/lastsweetop/article/details/9773233 所有源码在github上,https://github.com/l ...
 - Kafka 生产消费 Avro 序列化数据
		
https://unmi.cc/kafka-produce-consume-avro-data/ https://unmi.cc/apache-avro-serializing-deserializi ...
 - 序列化之protobuf与avro对比(Java)
		
最近在做socket通信中用到了关于序列化工具选型的问题,在调研过程中开始趋向于用protobuf,可以省去了编解码的过程.能够实现快速开发,且只需要维护一份协议文件即可. 但是调研过程中发现了pro ...
 - Hadoop基础-Apache Avro串行化的与反串行化
		
Hadoop基础-Apache Avro串行化的与反串行化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Apache Avro简介 1>.Apache Avro的来源 ...
 - Kafka Schema Registry | 学习Avro Schema
		
1.目标 在这个Kafka Schema Registry教程中,我们将了解Schema Registry是什么以及为什么我们应该将它与Apache Kafka一起使用.此外,我们将看到Avro架构演 ...
 - 常见的序列化框架及Protobuf序列化原理
		
原文链接:https://www.jianshu.com/p/657fbf347934 https://www.cnblogs.com/javazhiyin/p/11375553.html https ...
 - Flink资料(4) -- 类型抽取和序列化
		
类型抽取和序列化 本文翻译自Type Extraction and Serialization Flink处理类型的方式比较特殊,包括它自己的类型描述,一般类型抽取和类型序列化框架.该文档描述这些概念 ...
 
随机推荐
- jar运行
			
#在.bat文件中,输入下面两行代码,双击运行该bat文件即可将带main方法的jar跑起来 title NAME java -jar NAME.jar #当web项目打包成war后,部署到tomca ...
 - Linux命令之查看文件夹、文件数量及其所占磁盘空间
			
一.查看数量 # 查看当前目录下的文件数量(不包含子目录中的文件) ls -l|grep "^-"| wc -l # 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表 ...
 - CSS基础入门
			
css基础语法 一.CSS格式 选择器{ 属性名:属性值; 属性名:属性值; } 选择器负责圈定范围,要修改的元素集合,花括号内的声明由属性名和属性值组成(key:value)的形式,用于设定具体样式 ...
 - swift 学习- 25 -- 协议 02
			
// 通过扩展添加协议一致性 // 即便无法修改源代码, 依然可以通过扩展 令已有类型遵循并符合协议, 扩展可以为已有类型添加属性, 方法, 下标 以及构造器, 因此可以符合协议中的相应要求 // 注 ...
 - easyui生成合并行,合计计算价格
			
easyui生成合并行,合计计算价格 注:本文来源: 原创 一:图样你效果图 二:代码实现 1:datagrid 列展示: window.dataGrid = $("#dataGrid&qu ...
 - mongoDB基础使用
			
环境交代 操作系统: CentOS 6.8 64位 mongodb: 4.06 安装 官方下载地址:https://www.mongodb.org/dl/linux/x86_64-rhel62 阿里云 ...
 - vuecli3初尝试(转载)
			
https://segmentfault.com/a/1190000016423943 在vue-cli3中安装element-ui 其中两种方式自己选择 格式化代码 使用yarn lint命令自动格 ...
 - bat命令行实现全盘遍历搜索文件
			
背景:当想要查找一个文件时,记得放在某个盘里.手动去遍历时感觉好心累,找了半天还是没有找着(虽然win有自带的搜索框,但是看着进度条的速度,我便果断的点了取消).基于这个情况,所以写了脚本满足自身查找 ...
 - java对之前的复习
			
日期:2018.7.29 星期日 博客期:003 我知道我实在是不想写博客,因为要做很多的准备啊!因为还要准备靠驾驶本,所以两边都要学!要不这次来总结总结驾驶员知识?还是算了吧!今天来总结一下学到的J ...
 - 将Maven项目打包成可执行jar文件(引用第三方jar)
			
方法一. mvn assembly 或 mvn package (一个jar包) 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build> ...