我是Scala的新手,在编写单元测试时遇到了问题。
我正在尝试在Scala中比较和检查两个Spark DataFrames单元测试的相等性,并意识到没有简单的方法来检查两个Spark DataFrames的相等性。
相当于C++的代码为(假设DataFrames在C++中表示为双精度数组):
int expected[10][2];
int result[10][2];
for (int row = 0; row < 10; row++) {
for (int col = 0; col < 2; col++) {
if (expected[row][col] != result[row][col]) return false;
}
}
实际的测试将涉及基于DataFrames列的数据类型的相等性测试(使用浮点数的精度、容差等进行测试)。
似乎没有一种简单的方法可以使用Scala迭代遍历DataFrames中的所有元素,而其他用于检查两个DataFrames的相等性的解决方案(如df1.except(df2)
)在我的例子中不起作用,因为我需要能够提供对测试相等性的支持,以及对浮点数和双精度浮点数的容差。
当然,我可以尝试事前对所有元素进行四舍五入,然后比较结果,但我想看看是否有其他解决方案允许我遍历DataFrames以检查是否相等。
https://stackoverflow.com/questions/40497639
复制相似问题