有没有办法在 Google Cloud Platform dataproc 集群上从 Jupyter notebook 运行ning 中保存的 .py 文件导入和 运行 函数?
Is there a way to import and run functions from saved .py files in a Jupyter notebook running on a Google Cloud Platform dataproc cluster?
当 运行 Jupyter notebook 原生时,从保存的 .py 脚本导入函数和实用程序很简单。
当我在 运行 Cloud Platform dataproc 集群上的 Jupyter notebook 运行 上工作并尝试同样的事情时-(在将 .py 脚本上传到我的 dataproc Jupyter notebook 之后-它是因此在云中***) 我无法将函数导入 (dataproc) notebook。
有谁知道我该怎么做?它是否只与找出正确但不明显的路径有关? (我正在尝试从与 Jupyter notebook 相同的文件夹中导入一个 .py 文件,所以如果这是 运行 本机它不需要路径,但也许它与 dataproc 不同?
*** 我尝试将 desktop/native .py 脚本导入 GC dataproc notebook 并没有犯错。
任何帮助或线索将不胜感激!
很遗憾,这不受支持。但是您可以下载 .py
文件然后导入,作为解决方法 - 详细信息可以在类似问题的答案中找到:
Dataproc import python module stored in google cloud storage (gcs) bucket.
如果您使用的是 PySpark 内核,您可以将依赖项添加到 sparkContext。
spark.sparkContext.addPyFile(f'gs://{your_bucket}/{path_to_file}/dependencies.zip')
您的 dependencies.zip 将包含一个包含所有 .py 脚本和 __init__.py
:
的文件夹
dependencies/
├── __init__.py
└── my_script.py
然后您可以使用
导入所有依赖项
import dependencies
或使用
导入单个依赖项
from dependencies.my_script import my_class
PS:对 dependencies.zip 的任何更改都不会反映在您的导入中,您必须重新启动 PySpark 内核才能使用更新的脚本。
当 运行 Jupyter notebook 原生时,从保存的 .py 脚本导入函数和实用程序很简单。
当我在 运行 Cloud Platform dataproc 集群上的 Jupyter notebook 运行 上工作并尝试同样的事情时-(在将 .py 脚本上传到我的 dataproc Jupyter notebook 之后-它是因此在云中***) 我无法将函数导入 (dataproc) notebook。
有谁知道我该怎么做?它是否只与找出正确但不明显的路径有关? (我正在尝试从与 Jupyter notebook 相同的文件夹中导入一个 .py 文件,所以如果这是 运行 本机它不需要路径,但也许它与 dataproc 不同?
*** 我尝试将 desktop/native .py 脚本导入 GC dataproc notebook 并没有犯错。
任何帮助或线索将不胜感激!
很遗憾,这不受支持。但是您可以下载 .py
文件然后导入,作为解决方法 - 详细信息可以在类似问题的答案中找到:
Dataproc import python module stored in google cloud storage (gcs) bucket.
如果您使用的是 PySpark 内核,您可以将依赖项添加到 sparkContext。
spark.sparkContext.addPyFile(f'gs://{your_bucket}/{path_to_file}/dependencies.zip')
您的 dependencies.zip 将包含一个包含所有 .py 脚本和 __init__.py
:
dependencies/
├── __init__.py
└── my_script.py
然后您可以使用
导入所有依赖项import dependencies
或使用
导入单个依赖项from dependencies.my_script import my_class
PS:对 dependencies.zip 的任何更改都不会反映在您的导入中,您必须重新启动 PySpark 内核才能使用更新的脚本。