scala—spark中浮点列的默认公差

mnemlml8  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(228)

假设我有两个Dataframe df1.except(df2) . 如果dataframe中的一列是float/double,那么默认情况下,相等性测试将使用什么公差(如果有)?
我的观察是如果我做了

val df1 = spark.sql("select cast(1.0001 as float) as foo")
val df2 = spark.sql("select cast(1.0002 - 0.0001 as float) as foo")
val df3 = spark.sql("select cast(1.0002 as float) as foo")

那么 df1.except(df2) 以及 df2.except(df3) 按天真的期望行事。
请注意,我不是在问如何解决或避免任何问题,这可能会造成;我只是问如果你不采取措施承认浮点本质上是不精确的,会发生什么。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题