Я настроил свой локальный PySpark, но каждый раз, когда я пытаюсь прочитать файлы s3 с протоколом s3a, он возвращает 403 AccessDenied Error.Учетная запись, к которой я пытаюсь подключиться, поддерживает только AWS acceptRole и дает мне временные Access_key, Secret_key и session_token
Я использую spark 2.4.4, hadoop 2.7.3 и aws-java-sdk-1.7.4 jar-файлов.Я знаю, что проблема не в моем маркере безопасности, поскольку я могу использовать те же учетные данные в boto3 для запроса того же сегмента.Я настраиваю сеанс saprk следующим образом:
spark.sparkContext._conf.setAll([
[('fs.s3a.impl', 'org.apache.hadoop.fs.s3a.S3AFileSystem'),
('fs.s3a.aws.credentials.provider','org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider'),
("fs.s3a.endpoint", "s3-ap-southeast-2.amazonaws.com"),
('fs.s3a.access.key', "..."),
('fs.s3a.secret.key', "..."),
('fs.s3a.session.token', "...")])
])
spark_01 = spark.builder.config(conf=conf).appName('s3connection').getOrCreate()
df = spark_01.read.load('s3a://<some bucket>')
Я получаю следующую ошибку: com.amazonaws.services.s3.model.AmazonS3Exception: код состояния: 403, сервис AWS: Amazon S3, запрос AWSID: ..., код ошибки AWS