gpt4 book ai didi

python - 在 AWS EMR 上的 MapReduce 代码中导入自定义函数

转载 作者:行者123 更新时间:2023-12-02 21:43:47 26 4
gpt4 key购买 nike

我已经为此苦苦挣扎了2个小时!

我在 python 中创建了一个映射器脚本,它在其他 python 脚本中导入我的自定义函数之一。

    #!/usr/bin/env python
import sys

import testImport

for line in sys.stdin:
if line and line!='':
words = line.strip().lower().split('\t')
print '%s\t%s' % (words[0].strip(),testImport.age_classify(int(words[1])))

这段代码在我的终端上运行良好......问题是当我将此映射器函数上传到 AWS Elastic MapReduce 时。我的工作失败,错误提示“导入模块 testImport 失败”。

testImport 是一个文件“testImport.py”,其中包含我的一些辅助函数(如 age_classify 函数),我需要对标准输入的每一行进行操作。

我将脚本上传到与映射器脚本(给定脚本)相同的存储桶中。

当我添加“流式传输程序”步骤时,我试图在参数部分传递它。即使在看到所有相关问题后,我也不知道该怎么做。

我怎样才能做到这一点???

任何帮助都会非常棒!

谢谢!

最佳答案

正如您所说,我已将 testImport.py 上传到与 map/reduce 脚本相同的存储桶中。除非您指定,否则 EMR 无法从该存储桶中读取。

对于 java ,我们在 fatjar 上为所有相关类创建并创建单个 jar 文件并执行它。对于您的 python 脚本,尝试创建单个 map 脚本和 reducer 脚本并运行它。

关于python - 在 AWS EMR 上的 MapReduce 代码中导入自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com