Avro序列化与反序列化
4、Avro实现序列化的步骤
1、创建maven工程,引入pom文件(定义属性和依赖信息,以及定义Avro插件)
2、根据Avro插件的要求,更改maven工程结构,需要创建一个source/main/avro源目录
3、根据avro的schema(模式)要求,创建模式文件(放在新建的源目录中),写好之后
4、执行 run-->maven generator sources命令,通过avro插件生成模式文件对应的java类
5、将数据封装到java类中,然后通过avro的API进行序列化和反序列化操作
1)设置属性值的方法:1)通过java平常的API 2)借助newBuilder()和build()方法:new Student().newBuilder(stu1).setAge(21).build();
2)创建schema文件产生的要序列化的对象stu,并赋值
3)创建DatumWriter<>对象,DatumWriter dw = new SpecificDatumWriter<>();
4)创建DataFileWriter<>对象,DataFileWriter<> dfw = new DataFIleWriter<>(df);
5)创建序列化通道 dfw.create(schema,file);schema:被序列化对象的对应模式
File:将序列化对象写入到哪一个文件中
6)将对象序列化到指定的文件中
dfw.append(stu);
反序列化:
1)创建DatumReader<>对象,DatumReader dr= new SpecificDatumReader<>();
2)创建DataFileReader<>对象,DataFileReader<> dfr= new DataFIleReader<>(new File(“1.txt”),dr);
3)判断是否还有需要反序列化的内容
While(dfr.hasNext( ) ){ dfr.next()}
Avro序列化与反序列化的更多相关文章
- hadoop深入研究:(十六)——Avro序列化与反序列化
转载请写明来源地址:http://blog.csdn.net/lastsweetop/article/details/9773233 所有源码在github上,https://github.com/l ...
- 如何使用maven进行avro序列化
maven导入avro: <dependency> <groupId>org.apache.avro</groupId> <artifactId>avr ...
- Hadoop基础-序列化与反序列化(实现Writable接口)
Hadoop基础-序列化与反序列化(实现Writable接口) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.序列化简介 1>.什么是序列化 序列化也称串行化,是将结构化 ...
- Hive之序列化与反序列化(SerDe)
序列化与反序列化的作用 1,序列化是对象转化为字节序列的过程: 2,反序列化是字节码恢复为对象的过程: 序列化的作用主要有两个: (1),对象向的持久化:即把对象转换成字节码后保存文件: (2),对象 ...
- avro序列化详细操作
Intellij 15.0.3 Maven avro 1.8.0 Avro是一个数据序列化系统. 它提供以下: 1 丰富的数据结构类型 2 快速可压缩的二进制数据形式 3 存储持久数据的文件容器 4 ...
- hive序列化和反序列化serde
一.简介 SerDe是Serializer/Deserializer的缩写.SerDe允许Hive读取表中的数据,并将其以任何自定义格式写回HDFS. 任何人都可以为自己的数据格式编写自己的SerDe ...
- C# 序列化与反序列化几种格式的转换
这里介绍了几种方式之间的序列化与反序列化之间的转换 首先介绍的如何序列化,将object对象序列化常见的两种方式即string和xml对象; 第一种将object转换为string对象,这种比较简单没 ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- Java 序列化与反序列化
1.什么是序列化?为什么要序列化? Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程. 我们都知道,在进行浏览器访问的时候,我们看到的文本.图片.音频. ...
随机推荐
- nginx屏蔽ip配置
屏蔽单个IP的命令是 deny 192.168.201.1 封ip段192 deny 192.0.0.0/8 封ip段192.168 deny 192.168.0.0/16 封ip段192.168.2 ...
- Unity Awards 2018最佳资源
好的工具与资源,将帮助你的开发,达到事办功倍,今天我们将为大家介绍荣获Unity Awards 2018最佳资源的获奖作品. 最佳艺术工具:Aura - Volumetric Lighting Aur ...
- 转-CVE-2016-10190浅析-FFmpeg堆溢出漏洞
本文转载自CVE-2016-10190 FFmpeg Heap Overflow 漏洞分析及利用 前言 FFmpeg是一个著名的处理音视频的开源项目,使用者众多.2016年末paulcher发现FFm ...
- 迁移virtualenv环境
记录一次将window上的virtualenv部署至LINUX服务器 前提 你已经使用virtualenv创建了一个虚拟的python运行环境,并且已经完成了你的应用的开发,现在需要将工程部署到服务器 ...
- 设计模式之装饰者模式-java实例
设计模式之装饰者模式 需求场景 我们有了别人提供的产品,但是别人提供的产品对我们来说还不够完善,我们需要对这个产品的功能进行补强,此时可以考虑使用装饰者模式. 我们已经有了产品,而且这个产品的功能非常 ...
- MAC使用超级终端
其实很简单. 先用ls看看/dev/tty.*哪个是具体的串口,我这里使用的edison的板子,所以插到macos上后可以看到的设备节点为: 只需要使用screen 命令即可,具体的命令格式如下: s ...
- Mac/Linux/Centos终端中上传文件到Linux云服务器
1.mac上传文件到Linux服务器 scp 文件名 用户名@服务器ip:目标路径 如:scp /Users/test/testFile test@www.linuxidc.com:/test/ ...
- centos 7 安装vscode
网上很多写的安装,会遇到一个问题,就是无法启动: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh ...
- spring Resource(转)
http://blog.csdn.net/u011225629/article/details/47143075
- Centos 7 下安装 Docker
docker目前只支持Centos 7及以后的版本,系统要求:64位,内核版本至少在3.10及以后版本. 第一步: 添加软件源,安装依赖软件包以方便对devicemapper存储的 ...