python - 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”的模块
我认为这是一个环境路径的事情。
解决方案
存储库位于您的笔记本实例上,而 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
推荐阅读
- javascript - 如何在javascript中将日期格式化为“E,d MMM yyyy HH:mm:ss zzz”?
- sql - SQL BigQuery 中的展平事件表
- javascript - E/launcher - 过时的元素引用:元素未附加到页面文档
- python - scrapy 和 selenium 错误以抓取具有加载更多按钮的页面
- android - BitmapFactory.decodeFile 返回 null 并将 inJustDecodeBounds 设置为 false
- java - Cloud Foundry 将路由从一个应用程序复制到另一个应用程序
- c# - C# 将矩阵划分为子块
- c++ - 连接资源文件中的字符串并将其传递给菜单项字符串(winapi)c ++
- java - Windows 中的 Netty 零拷贝
- ssh - 如何在多台计算机上使用并行来只完成一次任务列表?