2016-07-07 27 views

Antwort

2

Nichts Spark spezifisch. Es führt einfach in einem integer overflow:

sc.parallelize(Seq(("a", Integer.MAX_VALUE), ("a", 1))).reduceByKey(_ + _).first 

// (String, Int) = (a,-2147483648) 

Wenn Sie feststellen, dass Überlauffehler vermuten kann auftreten, Sie auf jeden Fall mehr entsprechenden Datentyp verwenden sollten und Long ist eine gute Wahl für ganzzahlige Werte:

sc.parallelize(Seq(
    ("a", Integer.MAX_VALUE.toLong), ("a", 1L) 
)).reduceByKey(_ + _).first 

// (String, Long) = (a,2147483648)