Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

294
Visualizações
¿Autorización de roles S3 para Spark?

Uso de pyspark2 (versión 2.0.0.cloudera1) en Cloudera dentro de AWS

Estoy tratando de escribir un marco de datos de Spark a almacenamiento S3, pero falla debido a la autenticación:

pyspark.sql.utils.IllegalArgumentException: u'AWS Access Key ID y Secret Access Key deben especificarse configurando las propiedades fs.s3n.awsAccessKeyId y fs.s3n.awsSecretAccessKey (respectivamente).'

Mi código pyspark es:

 utp.coalesce(1).write.format('com.databricks.spark.csv').save('s3n://my_bucket/tmr_xfers/test_output')

Usamos funciones para acceder a S3, es decir, 'aws_iam_role=arn:aws:iam::123456789012:role/RoleName', no ID de clave de acceso individuales.

¿Qué necesito cambiar en mi código Spark para que mi csv se escriba en S3 usando roles en lugar de AccessKeyId y SecretAccessKey individuales?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tuve el mismo problema y lo solucioné usando s3a:// en su lugar, que aparentemente es mucho más moderno y eficaz en cualquier caso.

El problema está en el código del controlador Hadoop (creo que el hadoop-aws.jar ) que es responsable de acceder al sistema de archivos S3. Aparentemente, el protocolo 'nativo' de s3n utiliza un antiguo controlador jets3t con el que es difícil trabajar y con el que todo el mundo tiene miedo de meterse. La implementación del nuevo protocolo s3a utiliza el SDK de AWS directamente y admite perfiles de instancia, etc.

Eche un vistazo a estos HADOOP-9680 y HADOOP-9384 para ver por qué NO SOLUCIONARON este problema.

about 4 years ago · Santiago Trujillo Relatório

0

Aquí hay una solución en scala spark2, tenga cuidado con el problema de seguridad.

 spark.sparkContext.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "xxxxx") spark.sparkContext.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "xxxxxxxx") Df.write. format("com.databricks.spark.csv").option("header", "true"). save("s3n://my_bucket/tmr_xfers/test_output")
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda