scala spark:比较两个精度不同的列,并接受精度较低的值作为相等值

ymdaylpp  于 2021-05-29  发布在  Spark
关注(0)|答案(0)|浏览(195)

作为调试/验证的一部分,我需要比较两个Dataframe。这两个Dataframe基本上表示相同的数据,但由不同的进程生成。有些列不必完全相等,但无论如何都应被接受(例如,字符串大小写不应算作错误)
一个问题是有些值的精度不同。所以,基本上我需要的是一个函数,它将生成“compared”列,如下所示:

+-------+--------+--------+
|   val1|    val2|compared|
+-------+--------+--------+
|    1.2|    1.19|    true|
|1.00002|1.000019|    true|
|  1.112| 1.00001|   false|
|    1.1|    1.19|    true|
+-------+--------+--------+

注意第一行和最后一行的区别。。。我不知道精度较低的值是用舍入表示,还是直接舍入表示。
我正在考虑一个相当复杂的函数,它使用几个步骤来获得较低的精度,然后检查另一个值是否是有效的舍入值或缩短值,但我希望有一个更优雅的方法。。。

暂无答案!

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

相关问题