我正在使用Scala Test为Scala应用程序创建单元测试。我将实际结果和预期结果作为数据集。当我手动验证实际数据集和预期数据集之间的数据和模式匹配时。
Actual Dataset= actual_ds Expected Dataset = expected_ds
当我执行下面的命令时,它返回False。
assert(actual_ds.equals(expected_ds))
有谁能指出原因吗?scala中有没有其他内置函数来比较数据集?
3pvhb19x1#
使用为Spark测试设计的库spark-fast-tests、spark-testing-base、spark-test之一它们非常易于使用,在它们的帮助下,可以轻松地比较两个数据集,并在输出时显示格式化消息您可以从spark-fast-tests开始(您可以在自述文件中找到用法),如果它不适合您的需要,请检查其他测试(例如,如果您需要其他输出格式)
umuewwlo2#
.equals()来自Java对象.equals,因此Assert失败是正确的。我将开始测试两个数据集:
.equals()
.equals
assert actual_ds.schema == expected_ds.schema
assert actual_ds.count() == expected_ds.count()
2条答案
按热度按时间3pvhb19x1#
使用为Spark测试设计的库spark-fast-tests、spark-testing-base、spark-test之一
它们非常易于使用,在它们的帮助下,可以轻松地比较两个数据集,并在输出时显示格式化消息
您可以从spark-fast-tests开始(您可以在自述文件中找到用法),如果它不适合您的需要,请检查其他测试(例如,如果您需要其他输出格式)
umuewwlo2#
.equals()
来自Java对象.equals
,因此Assert失败是正确的。我将开始测试两个数据集:
assert actual_ds.schema == expected_ds.schema
assert actual_ds.count() == expected_ds.count()
然后检查这个问题:DataFrame equality in Apache Spark