Я пытаюсь работать на локальном компьютере из ноутбука Jupyter, подключенного к автономному искровому кластеру, созданному с docker -compose (bde2020 / spark-master: 2.4.4-hadoop2.7 / bde2020 / spark-worker: 2.4.4 -hadoop2.7). Использование stackoverflow и ссылки на сообщение в блоге, например Ошибка при попытке доступа к AWS S3 с использованием Pyspark & https://medium.com/@sivachaitanya / accessing- aws -s3-from-pyspark-standalone-cluster-6ef0580e3c08 Я настроил следующий сеанс искры для чтения json данных из s3.
spark = SparkSession.\
builder.\
master('spark://localhost:7077').\
config("spark.jars.packages", "com.amazonaws:aws-java-sdk:1.11.711").\
config("spark.jars.packages", "org.apache.hadoop:hadoop-aws:2.7.3").\
getOrCreate()
spark._jsc.hadoopConfiguration().set("fs.s3a.access.key", "My S3 access key")
spark._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "my S3 secret")
spark._jsc.hadoopConfiguration().set("fs.s3a.impl","org.apache.hadoop.fs.s3a.S3AFileSystem")
spark._jsc.hadoopConfiguration().set("com.amazonaws.services.s3.enableV4", "true")
spark._jsc.hadoopConfiguration().set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.BasicAWSCredentialsProvider")
spark._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3.ap-northeast-2.amazonaws.com")
user_log = spark.read.json('s3a://my_s3_bucket_name/mini_sparkify_event_data.json')
Однако эти строки кода дали мне следующую ошибку в последней строке.
Py4JJavaError: An error occurred while calling o52.json.
: com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: 7DF5D607173309C4, AWS Error Code: null, AWS Error Message: Bad Request, S3 Extended Request ID: qQnY555uUuGAtyJROHkh68GwCF5iuIRAr4AvoRwt+0lZGgUN2aD3eqB39dHVimDjQRvJBvEqyN4=
Есть ли какие-либо настройки, которые мне нужно изменить, чтобы правильно считывать данные с S3?