如何示例化用schemabuilder.array(array\u schema)声明的数组示例?
使用kafka连接模式,您可以在自定义连接器中示例化org.apache.kafka.connect.data.struct,如下所示:
Schema STRUCT_SCHEMA = SchemaBuilder.struct().field("timestamp", Schema.INT64_SCHEMA).build();
Struct s = new Struct(STRUCT_SCHEMA);
您也可以声明数组架构,但我不知道如何创建一个:
Schema ARRAY_SCHEMA = SchemaBuilder.array(Schema.FLOAT64_SCHEMA).build();
// Create one here, how?
我实际上是想在结构中嵌套一个数组,但我假设问题是我不能示例化一个数组示例。简单地添加一个本机java数组似乎不起作用。我在运行时看到的错误是:
Unable to create Struct from value: org.apache.kafka.connect.errors.DataException: Invalid Java object for schema type ARRAY: class [Ljava.lang.Double; for field: "floatValues"
对于嵌套架构:
Schema ARRAY_SCHEMA = SchemaBuilder.array(Schema.OPTIONAL_FLOAT64_SCHEMA).optional().build();
Schema STRUCT_SCHEMA = SchemaBuilder.struct()
.field("timestamp", Schema.INT64_SCHEMA)
.field("floatValues", ARRAY_SCHEMA).build();
Struct s = new Struct(STRUCT_SCHEMA);
s.put("floatValues", new Double[]{Double.valueOf(1)});
// I assume I must need to wrap the Double[] inside some Kafka Connect Array object?
我回顾过的资源:
apache connect文档
apache连接javadoc
合流连接器开发人员指南
Mavenr。莫法特的博客
confluent hub(浏览随机开源连接器的源代码)
1条答案
按热度按时间rvpgvaaj1#
你需要使用
List
你可以看到Struct
这里是单元测试