From eba89be2633cfc7b0b3104c71ffd544c0f2db38b Mon Sep 17 00:00:00 2001 From: liyuance Date: Mon, 2 May 2016 14:03:13 +0800 Subject: [PATCH] fix VertexRDD.count exceed on large graph --- .../main/scala/org/apache/spark/util/collection/BitSet.scala | 4 ++-- .../org/apache/spark/graphx/impl/VertexPartitionBase.scala | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala b/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala index 7ab67fc3a2de9..d23e269210e7f 100644 --- a/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala +++ b/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala @@ -179,8 +179,8 @@ class BitSet(numBits: Int) extends Serializable { /** Return the number of bits set to true in this BitSet. */ - def cardinality(): Int = { - var sum = 0 + def cardinality(): Long = { + var sum = 0L var i = 0 while (i < numWords) { sum += java.lang.Long.bitCount(words(i)) diff --git a/graphx/src/main/scala/org/apache/spark/graphx/impl/VertexPartitionBase.scala b/graphx/src/main/scala/org/apache/spark/graphx/impl/VertexPartitionBase.scala index 8d608c99b1a1d..b60d7f7cc24b8 100644 --- a/graphx/src/main/scala/org/apache/spark/graphx/impl/VertexPartitionBase.scala +++ b/graphx/src/main/scala/org/apache/spark/graphx/impl/VertexPartitionBase.scala @@ -68,7 +68,7 @@ private[graphx] abstract class VertexPartitionBase[@specialized(Long, Int, Doubl val capacity: Int = index.capacity - def size: Int = mask.cardinality() + def size: Long = mask.cardinality() /** Return the vertex attribute for the given vertex ID. */ def apply(vid: VertexId): VD = values(index.getPos(vid))