假设我有两个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)
按天真的期望行事。
请注意,我不是在问如何解决或避免任何问题,这可能会造成;我只是问如果你不采取措施承认浮点本质上是不精确的,会发生什么。
暂无答案!
目前还没有任何答案,快来回答吧!