繁体   English   中英

使用PySpark从Amazon S3读取文本文件

[英]reading text file from Amazon S3 with PySpark

我正在尝试获取一个Spark集群以从Amazon S3云存储读取数据源。 这会导致以下错误,我需要一些帮助来诊断问题:

>>> sc.textFile("s3a://storage-bucket/s3test.txt").collect()

py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: D47397DA8BCB4669, AWS Error Code: null, AWS Error Message: Bad Request, S3 Extended Request ID: /aBi99tozgFEsdRGubDwhriMsNQvl1jLOf8AJquA8VXxzkpPL/LLCWDFQQvYn4snHx5gx66/pXo=

顺便说一句,它可以正常工作:

$ aws s3 cp s3://storage-bucket/s3test.txt ./s3text.txt
download: s3://storage-bucket/s3test.txt to ./s3text.txt
$ cat s3text.txt 
Hello S3

错误消息的更多详细信息:

Caused by: org.jets3t.service.S3ServiceException: Service Error Message. -- ResponseCode: 403, ResponseStatus: Forbidden, XML Error Message: <?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoe
sNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>xxxxxxxxxxxxxxxxxx</AWSAccessKeyId><St

您可以检查fs.s3a.access.keyfs.s3a.secret.key并确保它们与用于执行aws s3 cp测试的凭据相同。 如果凭据错误,则会显示此SignatureDosNotMatch错误。 试试hdfs fs -ls s3a://storage-bucket/

您的配置有问题。 S3A连接器使用AWS开发工具包。 如果您的堆栈跟踪包括jets3t,则您以某种方式将错误的文件系统连接到了它。 从您的源代码中删除设置fs.s3a.impl属性并依赖于Hadoop运行时进行分类的任何事物,然后重复

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM