首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行AWS作业时,"ImportError:没有名为pyRserve的模块“

运行AWS作业时,"ImportError:没有名为pyRserve的模块“
EN

Stack Overflow用户
提问于 2018-01-21 13:09:15
回答 2查看 3.9K关注 0票数 1

当我运行Glue作业试图导入pyRserve python模块(纯Python)时,我得到了以下错误:

代码语言:javascript
复制
LogType:stdout
Log Upload Time:Sun Jan 21 12:27:32 +0000 2018
LogLength:206
Log Contents:
Traceback (most recent call last):
File "script_2018-01-21-12-27-05.py", line 8, in <module>
import pyRserve
ImportError: No module named pyRserve
End of LogType:stdout

以下是我工作的细节:

代码语言:javascript
复制
$ aws glue get-job --job-name test_trunc
{
    "Job": {
        "Name": "test_trunc",
        "Role": "arn:aws:iam::#CLIPPED#:role/AWSGlueServiceRoleDefault",
        "CreatedOn": 1516192543.117,
        "LastModifiedOn": 1516537317.889,
        "ExecutionProperty": {
            "MaxConcurrentRuns": 1
        },
        "Command": {
            "Name": "glueetl",
            "ScriptLocation": "s3://#CLIPPED#/gluescripts/test_trunc"
        },
        "DefaultArguments": {
            "--TempDir": "s3://#CLIPPED#/jobs/test_trunc/scripts",
            "--extra-py-files": "s3://#CLIPPED#/jobs/test_trunc/python-libs/pyRserve.zip",
            "--job-bookmark-option": "job-bookmark-disable",
            "--job-language": "python"
        },
        "Connections": {
            "Connections": [
                "redshift"
            ]
        },
        "MaxRetries": 0,
        "AllocatedCapacity": 10
    }
}

下面是我正在运行的脚本:

代码语言:javascript
复制
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
import pprint
import pyRserve

以下是完整的日志:

https://gist.github.com/mattazend/b611d0232d94ade4bc4c16bcb79f73a8

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-17 05:57:14

根据AWS胶水文件: 只能使用纯Python库。依赖于C扩展的库,如熊猫Python数据分析库,目前还不受支持。

我认为,即使我们将python库上传为zip文件,如果您使用的库具有C扩展的依赖项,也无法工作。我曾经尝试过使用Pandas、Holidays等,就像您尝试过的那样,在联系AWS支持时,他们提到它在他们的待办事项列表中(支持这些蟒蛇),但到目前为止还没有ETA。

@Ishwr:根据这个链接https://pypi.python.org/pypi/pyRserve/0.9.1,pyRserve需要Numpy包作为安装的先决条件,如果在已安装的库列表中找不到numpy,pyRserve首先安装numpy,然后再转到pyRserve。

由于Glue不支持numpy,因此我认为由于这个原因,pyRserve要么不是从zip文件中安装的,要么是它不为作业所识别/考虑的,因此也就是ImportError。

pyRserve由拉尔夫·海克尔(www.ralph-heinkel.com)撰写,并以麻省理工学院的许可发布。 快速安装确保安装了Numpy (版本1.4.x或更高版本)。 然后从unix/windows命令行运行: 用于手动安装的pip pyRserve下载tar.gz或zip包。解压缩后,cd进入pyRserve目录,并从命令行运行python安装。 实际上,如果缺少pip pyRserve,就应该安装numpy。

希望是对的。

谢谢。

票数 2
EN

Stack Overflow用户

发布于 2018-03-16 22:04:33

您是否使用S3中的zip文件作为您要导入的库的压缩文件,如建议的这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48367110

复制
相关文章

相似问题

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