amazon-web-services - 从 Pyspark 调用 AWS S3 存储桶时出错。 AWS 错误代码 : null, AWS 错误消息:错误请求

标签 amazon-web-services apache-spark amazon-s3 pyspark

错误是 Py4JJavaError:调用 o411.csv 时发生错误。

com.amazonaws.services.s3.model.AmazonS3Exception:状态代码:400,AWS 服务:Amazon S3,AWS 请求 ID:fsdfewffsd,AWS 错误代码:null,AWS 错误消息:错误请求, S3 扩展请求 ID

我使用的是 Spark 3.0 预览版。 我用 pyspark --packages=org.apache.hadoop:hadoop-aws:2.7.3 开始 pyspark session 命令。

我尝试了下面的代码

hadoop_conf = spark._jsc.hadoopConfiguration()
hadoop_conf.set("fs.s3a.impl","org.apache.hadoop.fs.s3a.S3AFileSystem")
hadoop_conf.set("com.amazonaws.services.s3.enableV4", "true")
hadoop_conf.set("fs.s3a.endpoint", "s3.us-east-2.amazonaws.com")    hadoop_conf.set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.BasicAWSCredentialsProvider")
hadoop_conf.set("fs.s3a.access.key",ACCESS_KEY)
hadoop_conf.set("fs.s3a.secret.key",SECRET_KEY)

随后调用存储桶,下面的行会抛出错误。

sdf = spark.read.csv("s3a://aai-team/neighbourhoods.csv")

最佳答案

我今天遇到了完全相同的问题。 刚刚用 setSystemProperty 解决了它 ->

spark = SparkSession.builder.appName("app").getOrCreate()
sc=spark.sparkContext
sc.setSystemProperty("com.amazonaws.services.s3.enableV4", "true")

然后 hadoop_conf 就像你的一样。

关于amazon-web-services - 从 Pyspark 调用 AWS S3 存储桶时出错。 AWS 错误代码 : null, AWS 错误消息:错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61867605/

相关文章:

iphone - DynamoDB - 新放置的项目未反射(reflect)在扫描中

python - 并行化 GZip 文件处理 Spark

json - 如何使用 Boto3 从 Amazon S3 读取大型 JSON 文件

regex - Redshift regexp_substr

ssl - AWS 负载均衡器始终将 443 路由到 8443

apache-spark - SQLException上的sqlContext HiveDriver错误:不支持的方法

hadoop - 如何在 Spark 中进行文本分析

node.js - 使用 Lambda Node 从 S3 上的文件在 S3 上创建一个 zip 文件

python - 可移植应用程序 : s3 and Google cloud storage

ios - 亚马逊 AWS AWSCognitoCredentialsProvider 初始化错误