Как читать из одной корзины 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

Есть ли другой способ получить доступ к двум разным корзинам одновременно?

0 ответов

Другие вопросы по тегам