我使用 Azure Databricks 以及笔记本和管道进行数据处理。
我对当前的工作流程不满意:
- 在不中断生产的情况下无法修改生产中使用的笔记本。当我想要开发更新时,我会复制笔记本,更改源代码直到我满意为止,然后用新笔记本替换生产笔记本。
- 我的浏览器不是 IDE!我无法轻松地转到函数定义。我有很多笔记本,如果我想修改甚至只是查看某个函数的文档,我需要切换到定义该函数的笔记本。
- 有没有办法进行高效、系统的测试?
- Git 集成非常简单,但这不是我主要关心的。
最佳答案
很好的问题。绝对不要就地修改您的生产代码。
一种推荐的模式是在工作区中为 dev-staging-prod 保留单独的文件夹。完成开发工作,然后在阶段中运行测试,然后最终升级到生产环境。
您可以使用 Databricks CLI 将笔记本从一个文件夹拉出或推送到另一个文件夹,而不会破坏现有代码。更进一步,您可以将此模式与 git 合并以与版本控制同步。无论哪种情况,CLI 都允许您以编程方式访问工作区,这将使更新生产作业的代码变得更加容易。
关于关于 IDE 的第二点 - Databricks 提供 Databricks Connect ,它允许您在集群上运行命令时使用 IDE。根据您的痛点,我认为这对您来说是一个很好的解决方案,因为它将使您更清楚地了解您定义的功能等。您还可以通过这种方式编写和运行单元测试。
一旦您准备好脚本,您就可以随时将它们作为笔记本导入工作区并将其作为作业运行。另请注意,您可以使用 REST API 将 .py 脚本作为作业运行。
关于azure - 什么是好的 Databricks 工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58822369/