Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

233
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!