У меня есть спарк-задания, работающие в кластере 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")