首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Java对象创建Avro字符串

从Java对象创建Avro字符串
EN

Stack Overflow用户
提问于 2018-09-04 11:31:30
回答 1查看 3.4K关注 0票数 0

我正在构建一个MapR生产者,它通过JDBC连接到Oracle,并获得一个结果集,以便发布到流中。

我希望将已填充的类对象序列化为Avro字符串,以作为我的发行者的消息。

我使用Maven Apache Avro插件为我的类对象生成一个Avro字符串

Schema schema = ReflectionData.get().getSchema(MyClass.class);

但是,如果我有一个完全填充的MyClass对象,如何使用模式和填充的数据生成一个Avro字符串?

我没有在这方面找到任何好的例子。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 21:27:13

假设我在java中有ReflectedCustomer类。

代码语言:javascript
运行
AI代码解释
复制
import org.apache.avro.reflect.Nullable;

public class ReflectedCustomer {

private String firstName;
private String lastName;
@Nullable private String nickName;

// needed by the reflection
public ReflectedCustomer(){}

public ReflectedCustomer(String firstName, String lastName, String nickName) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.nickName = nickName;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String fullName(){
    return this.firstName + " " + this.lastName + " " + this.nickName;
}

public String getNickName() {
    return nickName;
}

public void setNickName(String nickName) {
    this.nickName = nickName;
}
}

下面的代码将使用上面的ReflectedCustomer并生成Avro字符串,并将其读取回来。

代码语言:javascript
运行
AI代码解释
复制
import org.apache.avro.Schema;
import org.apache.avro.file.CodecFactory;
import org.apache.avro.file.DataFileReader;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.reflect.ReflectData;
import org.apache.avro.reflect.ReflectDatumReader;
import org.apache.avro.reflect.ReflectDatumWriter;
import java.io.File;
import java.io.IOException;

public class ReflectionExamples {

    public static void main(String[] args) {

        // here we use reflection to determine the schema
        Schema schema = ReflectData.get().getSchema(ReflectedCustomer.class);
        System.out.println("schema = " + schema.toString(true));


        // create a file of ReflectedCustomers
        try {
            System.out.println("Writing customer-reflected.avro");
            File file = new File("customer-reflected.avro");
            DatumWriter<ReflectedCustomer> writer = new ReflectDatumWriter<>(ReflectedCustomer.class);
            DataFileWriter<ReflectedCustomer> out = new DataFileWriter<>(writer)
                    .setCodec(CodecFactory.deflateCodec(9))
                    .create(schema, file);

            out.append(new ReflectedCustomer("Bill", "Clark", "The Rocket"));
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        // read from an avro into our Reflected class
        // open a file of ReflectedCustomers
        try {
            System.out.println("Reading customer-reflected.avro");
            File file = new File("customer-reflected.avro");
            DatumReader<ReflectedCustomer> reader = new ReflectDatumReader<>(ReflectedCustomer.class);
            DataFileReader<ReflectedCustomer> in = new DataFileReader<>(file, reader);

            // read ReflectedCustomers from the file & print them as JSON
            for (ReflectedCustomer reflectedCustomer : in) {
                System.out.println(reflectedCustomer.fullName());
            }
            // close the input file
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }



    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52172873

复制
相关文章
Python生成随机整数数组的实用方法
在编程中,生成随机整数数组是一项非常常见的任务。本文将介绍如何使用Python语言来生成随机整数数组,帮助读者掌握这一有用的编程技巧。通过实际的代码示例,我们将逐步指导读者完成生成随机整数数组的过程,并提供一些实际应用的建议。
华科云商小彭
2023/10/09
6740
Python生成随机整数数组的实用方法
Java随机生成前N个不重复的整数
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random; /** 测试随机生成前N个不重复的整数 @author Administr
用户7999227
2021/09/23
1.5K0
使用pyplot生成随机漫步
如何用pyplot生成一个随机漫步 先创建一个random_walk.py from random import choice class RandomWalk: # 创建一个RandomWalk类 def __init__(self, points_num): # 随机漫步的步数 self.points_num = points_num self.x_value = [0] # 初始化x的坐标为0 self.y_value = [0
y191024
2022/09/20
2790
使用pyplot生成随机漫步
使用python3来生成安全的随机密码
最近1年自学了python,发现python的应用场景挺多,自己百度了加自己稍微修改,写了段可以随时生成指定长度的安全随机密码 #C:\Python36 #coding=utf-8 import string from random import choice passwd_length = int(input('The length of password: '))        #密码的长度 passwd_count = int(input('The number of password list
py3study
2020/01/06
1.1K0
random生成随机整数 python_python中的random函数
在 Python 中用于生成随机数的模块是 random,在使用前需要 import.
全栈程序员站长
2022/11/09
1.1K0
random生成随机整数 python_python中的random函数
使用js随机生成背景颜色
通过 Math.random() 属性可以随机生成一个数字,然后通过转化为十六进制的方法进行处理,下面就是随机生成 6 位数字的代码,并进行转化的代码。
子舒
2022/06/09
26.4K0
使用js随机生成背景颜色
Numpy使用-随机生成数据
在自己学习pandas和numpy库进行数据处理的过程,有时候会缺乏数据。虽然网上有很多的数据,但是需要时间去查找。
皮大大
2021/03/07
1.2K0
PHP rand() 函数随机整数。
  如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 5 到 15(包括 5 和 15)之间的随机数,用 rand(5, 15)。
睿儿网络郝刚
2020/09/16
2.6K0
使用Hashtable来检验随机数的随机性
1.首先是创建Hashtable,使用for循环和定义一个产生随机数的r,key值对应随机数的value值。
Java进阶者
2021/12/31
2400
使用Hashtable来检验随机数的随机性
使用mockjs 随机生成模拟接口数据
json-server模拟后端接口 https://cloud.tencent.com/developer/article/1541622
王小婷
2019/11/21
1.6K0
js随机生成一个[min,max]范围的整数,举一反三
如果是想带有小数的随机数,这里提供思路,产生两位数,然后将个位数转化为小数,十位数就是个位数,以此类推,这样就是有小数的啦。
啦啦啦啦
2023/02/27
1.4K0
双倍的分辨率,双倍的快乐
这个工具名为waifu2x,已经开源在GitHub上了,而且随着开源,基于waifu2x的第三方软件也逐渐多了起来,现在已经开发成了普通人也可以使用的软件了。waifu2x的主要功能就是处理动漫风格的图片使之分辨率和清晰度在一定程度上提高,最大提高两倍,因而为2x。
分享者
2022/05/17
3840
双倍的分辨率,双倍的快乐
使用java随机生成验证码
生成验证码图片 验证码是Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序,可以防止:恶意破解密码、刷票、论坛灌水、有效防止某个黑客对某一特定注册用户,用特定程序暴力破解方式进行不断的登录尝试。实际上验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。 下面我们就来学习如何自动生成一个验证码图片,案例的源代码点击此处进行下载,具体如下:
全栈程序员站长
2022/06/30
1.2K0
使用RANDARRAY生成随机数数组
RANDARRAY函数返回随机数数组,可指定要填充随机数的行数和列数、最小值和最大值、以及是否返回整数或小数值,其语法为:
fanjy
2023/08/30
6290
使用RANDARRAY生成随机数数组
使用 RandomStringUtils 类来生成随机码/随机数 java生成指定范围的随机数
    /*         生成微信账号 8位的字符串 含有数字和字母      */     public String getRandomWeiChat(){         String str = "a0A0b1B2c1C3d2D1e3E2f4F3g5G7h4H6i5Ij4J9k5K6l6Lm7M7n8N8o9Op0PqQrRsStTuUv9VwWxXy8YzZ";         return RandomStringUtils.random(8, str);     }
bear_fish
2018/09/19
4.1K0
PHP生成随机数(昵称随机生成器)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128397.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
6.1K1
猜测1-100的随机整数
public static void main(String[] args) {
算法与编程之美
2023/01/03
9040
excel随机生成区间随机数
既然,这个函数只能生成随机整数,那么可不可以生成随机小数了?可以的,本次以随机生成小数点后一位小数为例,先输入公式=RANDBETWEEN(1,9),生成1~9的随机数,再除以10,即可得到这一结果,完整公式如下:=RANDBETWEEN(1,9)/10
似水的流年
2019/12/06
2.5K0
点击加载更多

相似问题

如何使用泊松来估计到达时间(生成随机整数)?

11

生成随机整数

42

生成随机整数

30

随机整数生成

10

使用随机长产生随机双倍

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档