首页 > 解决方案 > SageMaker 笔记本连接到 EMR 导入自定义 Python 模块

问题描述

我查看了类似的问题,但没有一个能解决我的问题。我有一个 SageMaker 笔记本实例,打开了一个连接到 AWS EMR 集群的 SparkMagic Pyspark 笔记本。我有一个连接到此笔记本的 SageMaker 存储库,也称为 dsci-Python

目录如下:

/home/ec2-user/SageMaker/dsci-Python
/home/ec2-user/SageMaker/dsci-Python/pyspark_mle/datalake_data_object/SomeClass
/home/ec2-user/SageMaker/dsci-Python/Pyspark_playground.ipynb

pyspark_mle 和 datalake_data_object 目录下都有__init__.py,我在其他环境中导入它们没有问题

当我在 Pyspark_playground.ipynb 中运行此代码时:

from pyspark_mle.datalake_data_object.SomeClass.SomeClass import Something

我没有名为“pyspark_mle”的模块

我认为这是一个环境路径的事情。

标签: pythonamazon-emramazon-sagemaker

解决方案


存储库位于您的笔记本实例上,而 PySpark 内核正在 EMR 集群上执行代码。

要访问 EMR 集群上的这些本地模块,您可以克隆 EMR 集群上的存储库。

此外,SparkMagic 有一个有用的魔法send_to_spark,可用于将数据从 Notebook 本地发送到 Spark 内核。https://github.com/jupyter-incubator/sparkmagic/blob/master/examples/Send%20local%20data%20to%20Spark.ipynb


推荐阅读