Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
¿Por qué Hadoop no respeta las propiedades 'spark.hadoop.fs' establecidas en pyspark?

Hay tres propiedades en mi spark-defaults.conf que quiero poder configurar dinámicamente:

  • spark.driver.maxResultSize
  • spark.hadoop.fs.s3a.access.key
  • spark.hadoop.fs.s3a.secret.key

Aquí está mi intento de hacerlo:

 from pyspark import SparkConf from pyspark.sql import SparkSession conf = (SparkConf() .setMaster(spark_master) .setAppName(app_name) .set('spark.driver.maxResultSize', '5g') .set('spark.hadoop.fs.s3a.access.key', '<access>')\ .set('spark.hadoop.fs.s3a.secret.key', '<secret>) ) spark = SparkSession.builder.\ config(conf=conf).\ getOrCreate() print(spark.conf.get('spark.driver.maxResultSize')) print(spark.conf.get('spark.hadoop.fs.s3a.access.key')) print(spark.conf.get('spark.hadoop.fs.s3a.secret.key')) spark.stop()

Aquí está la salida que obtengo:

 5g <access> <secret>

Sin embargo, cuando intento leer un archivo csv en S3 usando esta configuración, aparece un error de permisos denegados.

Si configuro las credenciales a través de variables de entorno, puedo leer el archivo.

¿Por qué Hadoop no respeta las credenciales especificadas de esta manera?

Actualizar:

Conozco otras preguntas y respuestas relacionadas con la configuración de las propiedades de Hadoop en pyspark.

Aquí estoy tratando de registrar para la posteridad cómo puede ser engañado para que piense que puede configurarlos dinámicamente a través spark.hadoop.* , ya que ese es el nombre que usa para configurar estas propiedades en spark-defaults.conf , y dado que no No obtendrá un error directamente cuando intente configurarlos de esta manera.

Muchos sitios le dicen que "establezca la propiedad spark.hadoop.fs.s3a.access.key ", pero no especifique que este solo sea el caso si lo configura estáticamente en spark-defaults.conf y no dinámicamente en pyspark .

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Resulta que no puede especificar las propiedades de Hadoop a través de:

spark.conf.set('spark.hadoop.<property>', <value>)

pero en su lugar debe utilizar:

spark.sparkContext._jsc.hadoopConfiguration().set('<property>', <value>)

Creo que solo puede usar spark.conf.set() para las propiedades enumeradas en la página Configuración de Spark .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda