目前,我正在将一个类序列化为avsc模式。这很管用:
DatasetDescriptor desc = new DatasetDescriptor.Builder().schema(ClassName.class).build();
但是,我需要动态地创建一个没有任何给定类的avsc。这可能吗?
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();
1条答案
按热度按时间uxhixvfz1#
这是可能的。您可以动态创建模式或读取avro模式。下面的代码使用硬编码模式,但基本上是相同的想法