在apache spark中,如果累积值超过double的范围怎么办?

时间:2017-09-21 03:16:26

标签: apache-spark double precision rdd

一个简单的例子: 假设数据RDD以(int, double)格式存储数据。

当我执行缩减时,例如data.reduceByKey{ case(a,b) => a + b},一个问题在我脑海中浮现:如果输入数据足够大以使累计值大于最大双值,该怎么办? Spark会处理这个问题吗?

1 个答案:

答案 0 :(得分:3)

例如,如果您使用Java进行编程,那么这不是Spark的错,即Java具有double的最大值。开发人员需要采取措施避免这种情况,如果他或她认为这是输入的可能性。例如,通过使用BigDecimal而不是double。

请记住,Spark不对存储在RDD中的类型(int,double,等)的行为负责。

(编辑)请注意Patricia的评论如下。如果忽略double和BigDecimal

给出的特定示例,问题和答案仍然相关