当我运行Glue作业以尝试导入pyRserve python模块(纯Python)时,出现此错误:
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
以下是有关我的工作的详细信息:
$ 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
}
}
这是我正在运行的脚本:
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
根据AWS Glue文档:
只能使用纯Python库。尚不支持依赖C扩展的库,例如pandas Python数据分析库。
我认为即使我们将python库作为zip文件上传,如果您使用的库具有C扩展的依赖项,也无法正常工作。我曾尝试以与您尝试过的相同方式使用Pandas,Holidays等,并在联系AWS Support时提到他们在待办事项列表中(对这些python库的支持),但到目前为止没有ETA。
@Ishwr:根据此链接https://pypi.python.org/pypi/pyRserve/0.9.1,pyRserve需要Numpy软件包作为安装的先决条件,如果在已安装的库列表中未找到numpy,则pyRserve首先安装numpy,然后再进行pyRserve。
由于Glue不支持numpy,因此我相信,由于这个原因,pyRserve要么没有从zip文件安装,要么没有被识别/考虑用于该工作,因此没有ImportError。
pyRserve由Ralph Heinkel(www.ralph-heinkel.com)编写,并根据MIT许可发布。
快速安装确保已安装Numpy(1.4.x版或更高版本)。
然后从您的unix / windows命令行运行:
pip pyRserve要手动安装,请下载tar.gz或zip软件包。解压缩后,将cd放入pyRserve目录,然后从命令行运行python setup.py install。
其实pip pyRserve应该安装numpy(如果缺少)。
希望是正确的。
谢谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句