我正在使用 IBM 对象存储(类似于 AWS S3)来存储数据。IBM 的对象存储实现了 S3 api。可以修改Spark 的 Hadoop 配置以允许它连接到 Amazon S3 。
我正在尝试(在 pyspark 中)通过将端点设置为指向 IBM 而不是 Amazon 来访问我的数据。
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。这可以改变吗?