我是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参数的维护,包括第三方软件包等。