pyspark的用户定义函数(UDF)是否需要单元测试



我是pysaprk的新手,所以我有一个函数,并为它编写了单元测试,我通过使用pyspark的这个函数定义了一个UDF函数,类似于:

udf_my_function = udf(lambda s: my_function(s), StringType())

我的问题是,如果我已经有了my_function()的单元测试,我需要udf_my_function的单元测试吗?如果是,我该怎么写?任何相关文章或链接也将不胜感激?非常感谢。

从我个人的观点来看,这并不是绝对必要的。但有时仍然希望将测试作为进行数据转换的测试套件的一部分。通常它的形式为:

sourceDf = .... # read data from somewhere, or define in test
resultDf = sourceDf.withColumn("result", udf_my_function(col("some_column")))
assertEqual(resultDf, expectedDf)

有几个库可用于为PySpark编写单元测试:

  • spark测试库-支持Scala和amp;Python
  • chispa-简单易用

您还可以使用pytest spark来简化spark参数的维护,包括第三方软件包等。

相关内容

最新更新