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

131
Vistas
Exportación de marco de datos de chispa a .csv con encabezado y nombre de archivo específico

Estoy tratando de exportar datos de un marco de datos de chispa a un archivo .csv:

 df.coalesce(1)\ .write\ .format("com.databricks.spark.csv")\ .option("header", "true")\ .save(output_path)

Está creando un nombre de archivo "part-r-00001-512872f2-9b51-46c5-b0ee-31d626063571.csv"

Quiero que el nombre del archivo sea "part-r-00000.csv" o "part-00000.csv"

Como el archivo se crea en AWS S3, estoy limitado en cuanto a cómo puedo usar los comandos os.system.

¿Cómo puedo configurar el nombre del archivo manteniendo el encabezado en el archivo?

¡Gracias!

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

0

Bueno, aunque obtuve una calificación de -3 para mi pregunta, aquí publico la solución que me ayudó a abordar el problema. Siendo un aficionado a la tecnología, siempre me preocupo más por el código / lógica que por la gramática. Al menos para mí, un pequeño contexto debería ser suficiente para comprender el problema.

Llegando a la solución:

Cuando creamos un archivo .csv a partir de un dataframe de chispa,

El archivo de salida se llama por defecto part-x-yyyyy donde:

1) x es 'm' o 'r', dependiendo de si el trabajo era solo un trabajo de mapa o reducido 2) yyyyy es el número de tarea del mapeador o reductor, puede ser 00000 o un número aleatorio.

Para cambiar el nombre del archivo de salida, debe ejecutar un comando os.system HDFS.

 import os, sys output_path_stage = //set the source folder path here output_path = // set the target folder path here //creating system command line cmd2 = "hdfs dfs -mv " + output_path_stage + 'part-*' + ' ' + output_path + 'new_name.csv' //executing system command os.system(cmd2)

Para tu información, si usamos la opción rdd.saveAsTextFile, el archivo se crea sin encabezado. Si usamos coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save(output_path) , el archivo se crea con un nombre de parte x aleatorio. La solución anterior nos ayudará a crear un archivo .csv con encabezado, delimitador junto con el nombre de archivo requerido.

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