创建没有类(-object)的avro模式

drkbr07n  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(294)

目前,我正在将一个类序列化为avsc模式。这很管用:

DatasetDescriptor desc = new DatasetDescriptor.Builder().schema(ClassName.class).build();

但是,我需要动态地创建一个没有任何给定类的avsc。这可能吗?

uxhixvfz

uxhixvfz1#

这是可能的。您可以动态创建模式或读取avro模式。下面的代码使用硬编码模式,但基本上是相同的想法

Schema schema = new Schema.Parser().parse("{\"namespace\": \"example.avro\",\n" +
        " \"type\": \"record\",\n" +
        " \"name\": \"User\",\n" +
        " \"fields\": [\n" +
        "     {\"name\": \"name\", \"type\": \"string\"},\n" +
        "     {\"name\": \"favorite_number\",  \"type\": [\"int\", \"null\"]},\n" +
        "     {\"name\": \"favorite_color\", \"type\": [\"string\", \"null\"]}\n" +
        " ]\n" +
        "}");
DatasetDescriptor desc = new DatasetDescriptor.Builder().schema(schema).build();

相关问题