Hello, I am working on a problem which implements Adamic Adar Algorithm using Gelly. I am running into this exception for all the Joins (including the one that are part of the reduceOnNeighbors function)
Too few memory segments provided. Hash Join needs at least 33 memory segments. The problem persists even when I comment out some of the joins. Even after using edg = edg.join(graph.getEdges(), JoinOperatorBase.JoinHint.BROADCAST_HASH_SECOND).where(0,1).equalTo(0,1).with(new JoinEdge()); as suggested by @AndraLungu the problem persists. The code is DataSet<Tuple2<Long, Long>> degrees = graph.getDegrees(); //get neighbors of each vertex in the HashSet for it's value computedNeighbors = graph.reduceOnNeighbors(new GatherNeighbors(), EdgeDirection.ALL); //get vertices with updated values for the final Graph which will be used to get Adamic Edges Vertices = computedNeighbors.join(degrees, JoinOperatorBase.JoinHint.BROADCAST_HASH_FIRST).where(0).equalTo(0).with(new JoinNeighborDegrees()); Graph<Long, Tuple3<Double, HashSet<Long>, List<Tuple3<Long, Long, Double>>>, Double> updatedGraph = Graph.fromDataSet(Vertices, edges, env); //configure Vertex Centric Iteration VertexCentricConfiguration parameters = new VertexCentricConfiguration(); parameters.setName("Find Adamic Adar Edge Weights"); parameters.setDirection(EdgeDirection.ALL); //run Vertex Centric Iteration to get the Adamic Adar Edges into the vertex Value updatedGraph = updatedGraph.runVertexCentricIteration(new GetAdamicAdarEdges<Long>(), new NeighborsMessenger<Long>(), 1, parameters); //Extract Vertices of the updated graph DataSet<Vertex<Long, Tuple3<Double, HashSet<Long>, List<Tuple3<Long, Long, Double>>>>> vertices = updatedGraph.getVertices(); //Extract the list of Edges from the vertex values DataSet<Tuple3<Long, Long, Double>> edg = vertices.flatMap(new GetAdamicList()); //Partial weights for the edges are added edg = edg.groupBy(0,1).reduce(new AdamGroup()); //Graph is updated with the Adamic Adar Edges edg = edg.join(graph.getEdges(), JoinOperatorBase.JoinHint.BROADCAST_HASH_SECOND).where(0,1).equalTo(0,1).with(new JoinEdge()); Any idea how I could tackle this Exception?