英文:
How to make leftJoin for KTable Many To One?
问题
我有两个KTable,需要进行左连接。这个左连接必须是多对一的。我有以下用于左连接的代码:
KTable<String, GenericRecord> right = createKTable("topic_1");
KTable<String, GenericRecord> left = createKTable("topic_2");
KTable<String, GenericRecord> joined = right.leftJoin(left, (doc, infoReg) -> {
List<Schema.Field> fields = doc.getSchema().getFields();
GenericRecord resultRecords = new GenericData.Record(valueSchema);
for (Schema.Field field : fields) {
resultRecords.put(field.name(), doc.get(field.name()));
}
Schema schema = valueSchema.getField("InfoReg").schema();
GenericArray<GenericRecord> list = new GenericData.Array<>(0, schema);
list.add(infoReg);
resultRecords.put("InfoReg", list);
return resultRecords;
});
但它的工作方式像是一对一。我如何修改代码以实现多对一的左连接?
英文:
I have two Ktable and I need doing leftJoin. This left join mast be ManyToOne. I have next code for leftJoin:
KTable<String, GenericRecord> right = createKTable("topic_1");
KTable<String, GenericRecord> left = createKTable("topic_2");
KTable<String, GenericRecord> joined = right.leftJoin(left, (doc, infoReg) -> {
List<Schema.Field> fields = doc.getSchema().getFields();
GenericRecord resultRecords = new GenericData.Record(valueSchema);
for (Schema.Field field : fields) {
resultRecords.put(field.name(), doc.get(field.name()));
}
Schema schema = valueSchema.getField("InfoReg").schema();
GenericArray<GenericRecord> list = new GenericData.Array<>(0, schema);
list.add(infoReg);
resultRecords.put("InfoReg", list);
return resultRecords;
});
But it's work like OneToOne. How I can change code for ManyToOne?
专注分享java语言的经验与见解,让所有开发者获益!
评论