错误是 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/