/ / duża liczba całkowita w Spark - apache-spark

duża liczba całkowita w Spark - apache-spark

W Spark-shell uruchamiam następujący kod:

scala> val input = sc.parallelize(List(1, 2, 4, 1881824400))
input: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:21

scala> val result = input.map(x => 2*x)
result: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[1] at map at <console>:23

scala> println(result.collect().mkString(","))
2,4,8,-531318496

Dlaczego wynik 2 * 1881824400 = -531318496? nie 3763648800?

Czy to błąd w Sparku?

Dzięki za pomoc.

Odpowiedzi:

0 dla odpowiedzi № 1

Dzięki ccheneson i hveiga. Odpowiedź jest taka, że ​​mapowanie powoduje, że wynik jest większy niż 2 ^ 31, kończy się zakres Interger. Dlatego liczba przeskakuje do regionu negatywów.