iteration.getWorkset() .map(new IdentityMapper<Tuple2<Double, String>>()) .join(iteration.getWorkset()).where(1).equalTo(1).projectFirst(0, 1); DataSet<Tuple3<Double, Long, String>> joined = worksetSelfJoin.join(iteration.getSolutionSet()).where(1).equalTo(2).with(new SolutionWorksetJoin());
filterDocs.join(filterRanks) .where(0).equalTo(1) .projectSecond(0, 1, 2);
private DataSet<Tuple5<KT, KB, EV, VVT, VVB>> joinEdgeWithVertices() { return edges .join(topVertices, JoinHint.REPARTITION_HASH_SECOND) .where(0) .equalTo(0) .projectFirst(0, 1, 2) .<Tuple4<KT, KB, EV, VVT>>projectSecond(1) .name("Edge with vertex") .join(bottomVertices, JoinHint.REPARTITION_HASH_SECOND) .where(1) .equalTo(0) .projectFirst(0, 1, 2, 3) .<Tuple5<KT, KB, EV, VVT, VVB>>projectSecond(1) .name("Edge with vertices"); }
private DataSet<Tuple5<KT, KB, EV, VVT, VVB>> joinEdgeWithVertices() { return edges .join(topVertices, JoinHint.REPARTITION_HASH_SECOND) .where(0) .equalTo(0) .projectFirst(0, 1, 2) .<Tuple4<KT, KB, EV, VVT>>projectSecond(1) .name("Edge with vertex") .join(bottomVertices, JoinHint.REPARTITION_HASH_SECOND) .where(1) .equalTo(0) .projectFirst(0, 1, 2, 3) .<Tuple5<KT, KB, EV, VVT, VVB>>projectSecond(1) .name("Edge with vertices"); }
private DataSet<Tuple5<KT, KB, EV, VVT, VVB>> joinEdgeWithVertices() { return edges .join(topVertices, JoinHint.REPARTITION_HASH_SECOND) .where(0) .equalTo(0) .projectFirst(0, 1, 2) .<Tuple4<KT, KB, EV, VVT>>projectSecond(1) .name("Edge with vertex") .join(bottomVertices, JoinHint.REPARTITION_HASH_SECOND) .where(1) .equalTo(0) .projectFirst(0, 1, 2, 3) .<Tuple5<KT, KB, EV, VVT, VVB>>projectSecond(1) .name("Edge with vertices"); }
.projectFirst(0).projectSecond(0);
.where(0) .equalTo(0) .projectFirst(0, 1) .<Tuple3<K, K, FloatValue>>projectSecond(2) .setParallelism(parallelism)
ordersFilteredByYear.joinWithHuge(lineitemsFilteredByFlag) .where(0).equalTo(0) .projectFirst(1).projectSecond(1); .joinWithTiny(nations) .where(3).equalTo(0) .projectFirst(0, 1, 2).projectSecond(1).projectFirst(4); customerWithNation.join(revenueByCustomer) .where(0).equalTo(0) .projectFirst(0, 1, 2, 3, 4).projectSecond(1);
.projectSecond(1).<Tuple2<Long, Long>>projectFirst(1).name("Join Candidate Id With Neighbor") updateComponentId = iteration.getSolutionSet().join(minCandidateId) .where(0).equalTo(0) .with(new FlatJoinFunction<Tuple2<Long, Long>, Tuple2<Long, Long>, Tuple2<Long, Long>>() { @Override public void join(Tuple2<Long, Long> current, Tuple2<Long, Long> candidate, updateComponentId = minCandidateId.join(iteration.getSolutionSet()) .where(0).equalTo(0) .with(new FlatJoinFunction<Tuple2<Long, Long>, Tuple2<Long, Long>, Tuple2<Long, Long>>() { @Override public void join(Tuple2<Long, Long> candidate, Tuple2<Long, Long> current,
DataSet<Tuple2<Long, Long>> union123 = union12.union(src3); union123.join(src4, JoinOperatorBase.JoinHint.BROADCAST_HASH_FIRST) .where(0).equalTo(0).name("join") .output(new DiscardingOutputFormat<Tuple2<Tuple2<Long, Long>, Tuple2<Long, Long>>>()).name("out");
.join(adjacencyListInput).where(0).equalTo(0).withParameters(cfg) .flatMap(new JoinVertexWithEdgesMatch()) newRanks.join(iteration).where(0).equalTo(0) .filter(new EpsilonFilter()));
.join(this.vertices).where(0).equalTo(0).name("Edge with source vertex"); return vertices.coGroup(edgesWithSources) .where(0).equalTo("f0.f1") .join(this.vertices).where(1).equalTo(0).name("Edge with target vertex"); return vertices.coGroup(edgesWithTargets) .where(0).equalTo("f0.f0") .flatMap(new EmitOneEdgeWithNeighborPerNode<>()).name("Forward and reverse edges") .join(this.vertices).where(1).equalTo(0) .with(new ProjectEdgeWithNeighbor<>()).name("Edge with vertex");
.join(this.vertices).where(0).equalTo(0).name("Edge with source vertex"); return vertices.coGroup(edgesWithSources) .where(0).equalTo("f0.f1") .join(this.vertices).where(1).equalTo(0).name("Edge with target vertex"); return vertices.coGroup(edgesWithTargets) .where(0).equalTo("f0.f0") .flatMap(new EmitOneEdgeWithNeighborPerNode<>()).name("Forward and reverse edges") .join(this.vertices).where(1).equalTo(0) .with(new ProjectEdgeWithNeighbor<>()).name("Edge with vertex");
.projectFirst(2, 0) .projectSecond(1, 3) .output(new DiscardingOutputFormat<Tuple>());
.projectFirst(2) .projectSecond(0, 0, 3) .projectFirst(0, 4)
.projectFirst(0, 1) .<Tuple3<Long, Long, Long>>projectSecond(2) .withPartitioner(partitioner);