Saltar al contenido

Cómo copiar y convertir archivos de parquet a csv

Te recomendamos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, un saludo.

Solución:

Probar

df = spark.read.parquet("/path/to/infile.parquet")
df.write.csv("/path/to/outfile.csv")

Documentación API relevante:

  • pyspark.sql.DataFrameReader.parquet
  • pyspark.sql.DataFrameWriter.csv

Ambas cosas /path/to/infile.parquet y /path/to/outfile.csv deben ser ubicaciones en el sistema de archivos hdfs. Puedes especificar hdfs://... explícitamente o puede omitirlo, ya que suele ser el esquema predeterminado.

Debes evitar usar file://..., porque un archivo local significa un archivo diferente para cada máquina en el clúster. Salida a HDFS en su lugar, luego transfiera los resultados a su disco local usando la línea de comando:

hdfs dfs -get /path/to/outfile.csv /path/to/localfile.csv

O mostrarlo directamente desde HDFS:

hdfs dfs -cat /path/to/outfile.csv

Si hay una tabla definida sobre esos archivos de parquet en Hive (o si usted mismo define esa tabla), puede ejecutar una consulta de Hive y guardar los resultados en un archivo CSV. Prueba algo como:

insert overwrite local directory dirname
  row format delimited fields terminated by ','
  select * from tablename;

Sustituto dirname y tablename con valores reales. Tenga en cuenta que cualquier contenido existente en el directorio especificado se elimina. Consulte Escritura de datos en el sistema de archivos a partir de consultas para obtener más detalles.

Fragmento para una forma más dinámica, ya que es posible que no sepa exactamente cuál es el nombre de su archivo de parquet, será:

for filename in glob.glob("[location_of_parquet_file]/*.snappy.parquet"):
        print filename
        df = sqlContext.read.parquet(filename)
        df.write.csv("[destination]")
        print "csv generated"

Te invitamos a añadir valor a nuestra información asistiendo con tu veteranía en las acotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *