首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Amazon Elastic MapReduce中导入本地Python包?

如何在Amazon Elastic MapReduce中导入本地Python包?
EN

Stack Overflow用户
提问于 2014-07-25 10:04:08
回答 2查看 1.2K关注 0票数 0

我有两个Python脚本,它们打算在Amazon Elastic MapReduce上运行-一个作为映射器,另一个作为减速器。我最近刚刚扩展了映射器脚本,需要更多的本地模型,这两个模型都位于一个名为SentimentAnalysis的包中。从S3上的本地Python包导入Python脚本的正确方法是什么?我尝试创建模拟我的文件系统的S3密钥,希望相对路径可以工作,但遗憾的是,它没有。下面是在步骤失败后我在S3上看到的日志文件:

代码语言:javascript
运行
复制
Traceback (most recent call last):
File "/mnt/var/lib/hadoop/mapred/taskTracker/hadoop/jobcache/job_201407250000_0001/attempt_201407250000_0001_m_000000_0/work/./sa_mapper.py", line 15, in <module>
from SentimentAnalysis import NB, LR
ImportError: No module named SentimentAnalysis

相关文件结构如下:

代码语言:javascript
运行
复制
sa_mapper.py
sa_reducer.py
SentimentAnalysis/NB.py
SentimentAnalysis/LR.py

mapper.py有:

代码语言:javascript
运行
复制
from SentimentAnalysis import NB, LR

我尝试在S3中镜像文件结构,但似乎不起作用。

设置S3或电子病历的最佳方式是什么,以便sa_mapper.py可以导入NB.py和LR.py?做这件事有什么特别的技巧吗?

EN

回答 2

Stack Overflow用户

发布于 2014-07-25 10:06:14

你有没有

代码语言:javascript
运行
复制
__init__.py

在SentimentAnalysis文件夹中?

票数 0
EN

Stack Overflow用户

发布于 2016-11-30 17:40:09

您正在运行的命令是什么?

要做到这一点,唯一的方法是当您想要运行步骤时,您可以在该步骤中添加额外的字段,例如:如果您正在使用boto包在电子病历上运行任务,则可以使用类: StreamingStep

其中包含以下参数:(如果使用2.43版)

cache_files ( list (str)) -要与作业捆绑的缓存文件列表

cache_archives ( list (str)) -要与作业捆绑的jar归档的列表

这意味着您需要将要从s3获取的文件夹的文件路径传递到您的集群中。语法为:

s3://{s3 bucket path}/EMR_Config.py#EMR_Config.py

其中,标签是您使用的分隔符,(#)之前的部分是您的s3中的位置,后面的部分是您希望它具有的名称和位置,当前它将位于与您正在运行的任务相同的位置。

在你的集群中,你不能简单地导入它们,有效的方法是:

代码语言:javascript
运行
复制
# we added a file named EMR_Config.py, 
sys.path.append(".")

#loading the module this way because of the EMR file system
module_name = 'EMR_Config'
__import__(module_name)
Config = sys.modules[module_name]

#now you can access the methods in the file, for example:
topic_name = Config.clean_key(row.get("Topic"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24946945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档