【发布时间】:2017-07-26 09:52:59
【问题描述】:
我使用以下代码从 Amazon S3 加载数据:
from ingest import Connectors
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
S3loadoptions = {
Connectors.AmazonS3.ACCESS_KEY : 'AKIAJYCJAFZYENNPACNA',
Connectors.AmazonS3.SECRET_KEY : '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',
Connectors.AmazonS3.SOURCE_BUCKET : 'ngpconnector',
Connectors.AmazonS3.SOURCE_FILE_NAME : 'addresses3.csv',
Connectors.AmazonS3.SOURCE_INFER_SCHEMA : '1',
Connectors.AmazonS3.SOURCE_FILE_FORMAT : 'csv'}
S3DF = sqlContext.read.format('com.ibm.spark.discover').options(**S3loadoptions).load()
S3DF.printSchema()
S3DF.show(5)
但是当我运行这段代码 sn-p 时,我得到了以下错误。当我从另一个数据源(例如 dashDB)加载时,我收到了类似的错误消息。
AttributeErrorTraceback (most recent call last)
<ipython-input-1-9da344857d7e> in <module>()
4
5 S3loadoptions = {
----> 6 Connectors.AmazonS3.ACCESS_KEY : 'AKIAJYCJAFZYENNPACNA',
7 Connectors.AmazonS3.SECRET_KEY : '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',
8 Connectors.AmazonS3.SOURCE_BUCKET : 'ngpconnector',
AttributeError: 'NoneType' object has no attribute 'AmazonS3'
【问题讨论】:
-
错误表明“摄取”中没有“连接器”。你确定你是从正确的库中导入的吗?
-
请不要创建新的 SQLContext。 DSX 上的笔记本已经有了。
-
检查您选择的 Spark 版本。 iirc,Spark 1.6 和 Spark 2.x 有不同版本的摄取库。此外,Python 2.7 与 Python 3.5 可能会发挥作用。
标签: amazon-s3 aws-sdk data-science-experience