/ / große ganze Zahl in Spark - Apache-Funke

große ganze Zahl in Spark - Apache-Funke

In Spark-Shell führe ich den folgenden Code aus:

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

Warum das Ergebnis von 2 * 1881824400 = -531318496? nicht 3763648800?

Ist das ein Fehler in Spark?

Danke für Ihre Hilfe.

Antworten:

0 für die Antwort № 1

Danke Ccheneson und Hveiga. Die Antwort ist, dass das Mapping das Ergebnis größer als 2 ^ 31 macht und den Bereich von Interger auslässt. Daher springt die Anzahl in den negativen Bereich.