将 python 模块导入数据块中的 python 脚本
Import python module to python script in databricks
我正在 Azure DataFactory 中开展一个项目,我有一个管道 运行 是一个 Databricks python 脚本。此特定脚本位于 Databricks 文件系统中,由 ADF 管道 运行 从位于同一文件夹中的另一个 python 脚本导入模块(两个脚本都位于 dbfs:/FileStore/code
).
下面的代码可以将 python 模块导入 Databricks notebook,但在导入 python 脚本时不起作用。
sys.path.insert(0,'dbfs:/FileStore/code/')
import conn_config as Connect
在集群日志中,我得到: Import Error: No module named conn_config
我猜测问题与python文件无法识别Databricks环境有关。有帮助吗?
您可以只使用对文件存储的引用:
(0,'dbfs:/FileStore/code')
您不能使用其中包含 dbfs:
的路径 - Python 对该文件系统一无所知。您有两个选择:
- 将
dbfs:/
替换为 /dbfs/
(不适用于社区版)
- 使用
dbutils.fs.cp("dbfs:/FileStore/code", "file:/tmp/code", True)
将文件从 DBFS 复制到本地文件系统,并引用该本地文件名:/tmp/code
终于用spark搞定了。创建 Spark 会话后(如果您的集群集成了 spark 会话,则无需启动会话):
spark.sparkContext.addPyFile("dbfs:/FileStore/code/conn_config.py")
import conn_config as C
此语法可以将 python 模块导入到来自 Azure DataFactory 的 运行 的 python 脚本。
使用 %run relative_path/file_name
然后您可以立即使用该模块,无需导入。
我正在 Azure DataFactory 中开展一个项目,我有一个管道 运行 是一个 Databricks python 脚本。此特定脚本位于 Databricks 文件系统中,由 ADF 管道 运行 从位于同一文件夹中的另一个 python 脚本导入模块(两个脚本都位于 dbfs:/FileStore/code
).
下面的代码可以将 python 模块导入 Databricks notebook,但在导入 python 脚本时不起作用。
sys.path.insert(0,'dbfs:/FileStore/code/')
import conn_config as Connect
在集群日志中,我得到: Import Error: No module named conn_config
我猜测问题与python文件无法识别Databricks环境有关。有帮助吗?
您可以只使用对文件存储的引用:
(0,'dbfs:/FileStore/code')
您不能使用其中包含 dbfs:
的路径 - Python 对该文件系统一无所知。您有两个选择:
- 将
dbfs:/
替换为/dbfs/
(不适用于社区版) - 使用
dbutils.fs.cp("dbfs:/FileStore/code", "file:/tmp/code", True)
将文件从 DBFS 复制到本地文件系统,并引用该本地文件名:/tmp/code
终于用spark搞定了。创建 Spark 会话后(如果您的集群集成了 spark 会话,则无需启动会话):
spark.sparkContext.addPyFile("dbfs:/FileStore/code/conn_config.py")
import conn_config as C
此语法可以将 python 模块导入到来自 Azure DataFactory 的 运行 的 python 脚本。
使用 %run relative_path/file_name
然后您可以立即使用该模块,无需导入。