diff --git a/core/src/main/scala/spark/RDD.scala b/core/src/main/scala/spark/RDD.scala index 12e2f4f9028de89a5e64cb4c7e6b08eeb1b4bb3a..40eb7967ec6defef8612c684001cea6982cc6490 100644 --- a/core/src/main/scala/spark/RDD.scala +++ b/core/src/main/scala/spark/RDD.scala @@ -107,7 +107,14 @@ abstract class RDD[T: ClassManifest](@transient sc: SparkContext) { } def count(): Long = { - sc.runJob(this, (iter: Iterator[T]) => iter.size.toLong).sum + sc.runJob(this, (iter: Iterator[T]) => { + var result = 0L + while (iter.hasNext) { + result += 1L + iter.next + } + result + }).sum } def toArray(): Array[T] = collect()