【发布时间】:2021-11-08 16:03:30
【问题描述】:
我创建了一些方法,可以将数据帧转换为所需格式,过滤多个错误检查并根据错误规则更新数据帧。
我是在 intelliJ 上用 scala 编写单元测试的新手。 我必须编写单元测试来将实际数据帧与预期结果进行比较。
下面是我为数据框的枢轴功能编写的单元测试用例。类似的方式,我必须将获得的数据集与预期的数据帧进行比较。
@Test
def testPivotingDataFramePositive(): Unit = {
val inputDf = spark.read.option("header",true).csv("src/test/resources/input-test-files/pivotInput.csv")
val expectedResult = spark.read.option("header",true).csv("src/test/resources/output-test-files/pivotOutput.csv")
val actualResult = parserObj.pivotingDataFrame(inputDf)
assertEquals(expectedResult, actualResult)
}
即使两个数据帧相同(可能是因为数据帧记录每次都排序),上述测试用例也因抛出差异而失败。
即使尝试了下面的比较,即使数据帧相同,它也会因输出为 0 而失败。
assert (actualResult.except(expectedResult).count() != 0 && expectedResult.except(actualResult).count != 0)
如何在单元测试中有效地测试数据帧转换功能?
【问题讨论】:
标签: scala dataframe unit-testing apache-spark apache-spark-sql