Как читать из одной корзины S3 и записывать в другую в pyspark?
Я попытался сделать следующее - установить конкретные конфиги для каждого сегмента - чтобы читать из одного сегмента S3 и записывать в другой. Два сегмента имеют разные учетные данные и принадлежат разным учетным записям. Однако чтение работает только для первого ведра. То есть, если мы получим первый блок первым, второй никогда не будет доступен (наоборот).
import os
## B1 CONF
spark.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.bucket.b1.access.key", B1_ACCESS_KEY)
spark.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.bucket.b1.secret.key", B1_SECRET_KEY)
spark.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.bucket.b1.endpoint", B1_ENDPOINT)
## B2 CONF
spark.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.bucket.b2.access.key", B2_ACCESS_KEY)
spark.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.bucket.b2.secret.key", B2_SECRET_KEY)
spark.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.bucket.b2.endpoint", B2_ENDPOINT)
df1 = spark.read.parquet("s3a://" + B1_BUCKET_NAME + "/somepath")
df.show()
df2 = spark.read.parquet("s3a://" + B2_BUCKET_NAME + "/somepath")
od.show()
Ошибка:Py4JJavaError: An error occurred while calling o915.parquet.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage X failed N times, most recent failure: Lost task 0.15 in stage X (TID M, IP, executor T): java.io.IOException: Bucket b2 does not exist
Есть ли другой способ получить доступ к двум разным корзинам одновременно?