我已经定义了几个函数并在其他笔记本中调用它,我想创建一个笔记本,在ADF中对所有这些函数进行单元测试,还需要进行单元测试,如源文件和数据帧之间的计数匹配。
如何实现这一点?
您可以使用Databricks Connect对Databricks笔记本进行单元测试;一种在你的Databricks集群上远程执行代码的方法。
首先克隆这篇博客文章附带的存储库
现在创建一个新的虚拟环境并运行:
pip install -r requirements.txt
然后你必须设置你的Databricks Connect。您可以按照上述共享文档中给出的方法运行databricks-connect
configure来完成此操作。
您可以通过运行
测试您的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执行。您可以在以下存储库中找到使用此库的示例。