关于通过Asvc生成测试数据(Avro/Parquet)的工具类 小结

本文介绍了Apache Avro及其Schema文件(Avsc)的基础概念,包括Avsc与Avro的关系,如何通过Avsc生成Java类,并详细展示了如何利用这些Java类生成Avro格式的测试数据。文中还特别关注了复杂数据类型的处理。

目录

1. Avsc和Avro的关系

2. Avsc生成Java类

3. 根据Java类生成Avro格式的测试数据

3.1 Avsc的schema types

3.2 Complex type的使用

3.3 生成测试数据


1. Avsc和Avro的关系

AVSC file is an Apache Avro Schema. Avro is a remote procedure call and data serialization framework developed within Apache's Hadoop project. It uses JSON for defining data types and protocols, and serializes data in a compact binary format.

简而言之,Avsc相当于avro的schema,类似于xml格式的schema是xsd。

其实网上有不少相关资料可以通过avro-tools来生成avro数据,但这篇文章主要总结的是包含嵌套关系的avsc。

2. Avsc生成Java类

1) 下载avro-tools-1.7.7.jar

2) 创建一个person.asvc:

{
    "namespace": "com.bas.model", 
    "type": "record",
    "name": "Person", 
    "fields": [ 
        {
            "name": "name",
            "type": "string"
        },
        {
            "name": "age",
            "type": "int"
        },
        {
            "name": "gender",
            "type": "string"
        },
        {
            "name": "hometown",
            "type": "string"
        }
    ]
}

3) 执行:

java -jar avro-tools-1.7.7.jar compile schema person.avsc .

然后生成的java类将会在下一步用来生成avro(生成的类300行就不粘贴了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值