データの保存に IBM オブジェクト ストレージ (AWS S3 に相当) を使用しています。IBM のオブジェクト ストレージは、S3 API を実装しています。Spark の Hadoop 設定を変更して、Amazon S3 に接続できるようにすることができます。
Amazon ではなく IBM を指すようにエンドポイントを設定して、(pyspark で) データにアクセスしようとしています。
sc._jsc.hadoopConfiguration().set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3-api.us-geo.objectstorage.service.networklayer.com")
sc._jsc.hadoopConfiguration().set('fs.s3a.access.key', '<my_key>')
sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "<secret_key>")
エラーがスローされます:
An error occurred while calling o131.partitions.
: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: 7F46A12CDBB841AA)
「サービス: Amazon S3;」に注意してください。そのため、SDK はまだ AWS に向けられていると思います。これは変更できますか?