ani*_*has 1 hazelcast hazelcast-imap hazelcast-jet
我有两个hazelcast地图1. map2 2. map2
我想把两个地图都放在键上。
我可以在hazelcast中做吗?
谢谢
如果要IMap在其“主键”(映射中使用的实际键)上将两个s 连接在一起,则应使用hashJoin管道变换。让我们从这些源代码阶段开始:
BatchStage<Entry<String, Person>> person = p.drawFrom(Sources.map("person"));
BatchStage<Entry<String, Employee>> employee = p.drawFrom(Sources.map("employee"));
Run Code Online (Sandbox Code Playgroud)
这是加入他们的基本方式:
BatchStage<Tuple2<Person, Employee>> joined =
persons.hashJoin(employees, joinMapEntries(Entry::getKey),
(personEntry, employee) -> tuple2(personEntry.getValue(), employee));
Run Code Online (Sandbox Code Playgroud)
您将获得成对的配对项目(Tuple2<Person, Employee>)。另一种常见情况是将一个项目附加到另一个项目,例如Employee可能具有一个person属性:
class Employee {
Person person;
Employee setPerson(Person person) {
this.person = person;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个你可以写
BatchStage<Employee> joined =
persons.hashJoin(employees, joinMapEntries(Entry::getKey),
(personEntry, employee) -> employee.setPerson(personEntry.getValue()));
Run Code Online (Sandbox Code Playgroud)
您可以使用Hazelcast Jet以流方式将两个地图合并在一起。检出cogroup-operator其中实现了自定义加入处理器的代码示例(术语“ co-group”和“ join”密切相关)。您将能够提供两个地图源,并且在输出流中,每个不同的键将获得一对集合,其中每个源中的所有项都具有相同的键。您也可以使其适应于生产成对的物品。
对流连接的一流支持是即将发布的Jet计划的一项功能。
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |