Как использовать Spark для чтения данных из одной учетной записи AWS и записи в другую учетную запись AWS? - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть спарк-задания, работающие в кластере EKS для получения AWS журналов из корзин S3 Теперь я должен принимать журналы с другого AWS аккаунта. Мне удалось использовать нижеприведенную настройку для успешного считывания данных из кросс-счета с помощью oop AssumedRoleCredentialProvider. Но как мне сохранить фрейм данных обратно в мою AWS учетную запись S3? Похоже, нет способа вернуть конфигурацию Had oop S3 моей учетной записи AWS.

spark.sparkContext.hadoopConfiguration.set("fs.s3a.assumed.role.external.id","****")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.auth.AssumedRoleCredentialProvider")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.assumed.role.credentials.provider","com.amazonaws.auth.InstanceProfileCredentialsProvider")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.assumed.role.arn","****")
val data = spark.read.json("s3a://cross-account-log-location")
data.count

//change back to InstanceProfileCredentialsProvider not working
spark.sparkContext.hadoopConfiguration.set("fs.s3a.aws.credentials.provider","com.amazonaws.auth.InstanceProfileCredentialsProvider")
data.write.parquet("s3a://bucket-in-my-own-aws-account")
...