对databricks笔记本上定义的函数进行单元测试,对pyspark DF进行单元测试



我已经定义了几个函数并在其他笔记本中调用它,我想创建一个笔记本,在ADF中对所有这些函数进行单元测试,还需要进行单元测试,如源文件和数据帧之间的计数匹配。

如何实现这一点?

您可以使用Databricks Connect对Databricks笔记本进行单元测试;一种在你的Databricks集群上远程执行代码的方法。

首先克隆这篇博客文章附带的存储库

现在创建一个新的虚拟环境并运行:

pip install -r requirements.txt

然后你必须设置你的Databricks Connect。您可以按照上述共享文档中给出的方法运行databricks-connectconfigure来完成此操作。

您可以通过运行

测试您的Databricks Connect是否正常工作:databricks-connect test

来源:https://benalexkeen.com/unit-testing-with-databricks-part-1/

这里有两点:

  • 单元测试-这可以通过在数据帧上运行.count()来完成,并将其包装到assert中,或者使用Spark的专门单元测试框架之一-例如,chispa或Spark -testing-base(您可以在我的repo中找到它们的示例)。

  • 测试的执行-有不同的方法:

    • 您可以将笔记本中的代码作为作业执行,如果测试失败则抛出异常。与文档中描述的类似。
    • 使用Nutter库在一个或多个笔记本中触发测试的执行-但该库更适合从CI/CD管道执行,而不是从ADF执行。您可以在以下存储库中找到使用此库的示例。

最新更新