如何使用 dbfs 之外的 Python 文件创建 Databricks 作业?

Posted

技术标签:

【中文标题】如何使用 dbfs 之外的 Python 文件创建 Databricks 作业?【英文标题】:How to create a Databricks job using a Python file outside of dbfs? 【发布时间】:2022-01-02 20:41:29 【问题描述】:

我对 Databricks 还很陌生,所以请原谅我在这里缺乏知识。我在 Azure 中使用 Databricks 资源。我现在主要使用 UI,但我知道有些功能只能使用 databricks-cli,我已经设置但尚未使用。

我已使用 UI 在 Databricks 存储库中克隆了我的 Git 存储库。在我的存储库中,有一个 Python 文件,我希望将其作为作业运行。

我可以使用 Databricks Jobs 创建一个将直接调用此 Python 文件的作业吗?我能够完成这项工作的唯一方法是创建另一个 Python 文件并将其上传到 dbfs,该文件将在我的 Databricks Repo 中调用该文件。

也许做不到,或者我使用的路径不正确。我在使用 Python 文件创建作业时尝试了以下路径结构,但很遗憾,它不起作用。

file:/Workspace/Repos/<user_folder>/<repo_name>/my_python_file.py

【问题讨论】:

它只是普通的 Python 文件,而不是笔记本? 是的,我想使用一个普通的 Python 文件,位于 Workspace/Repos/// 【参考方案1】:

一种解决方法是创建一个调用此文件的包装笔记本,即

from my_python_file import main
main()

然后您可以在此笔记本上安排作业

【讨论】:

这就是我现在使用的。我不希望有一个包装笔记本,但它可以工作而且很简单。 @EmiliePicard-Cantin 你能帮帮我吗?我和你有完全相同的问题。但是当我在 wrapper notebook 中说“from my_python_file import main”时,它会说“没有名为“my_python_file”的模块。你是否需要做一些特别的事情才能使这个包装器解决方案工作? @BrendanHill 我也遇到了同样的问题。你的 notebook 和 python 文件在同一个文件夹中吗?当它们位于完全相同的文件夹中时,它对我有用。否则,我将不得不做更多的挖掘。

以上是关于如何使用 dbfs 之外的 Python 文件创建 Databricks 作业?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 DBFS 中本地保存和下载 csv?

如何使用pyspark递归获取存储在dbfs文件夹中的Excel文件?

您将如何构建数据库文件系统 (DBFS)?

带有 python 的 Azure Databricks dbfs

Databricks:将dbfs:/ FileStore文件下载到我的本地计算机?

从数据块 DBFS 中删除记录