Saltar al contenido

¿Cómo exportar un marco de datos de tabla en PySpark a csv?

Agradecemos tu apoyo para extender nuestros enunciados referente a las ciencias de la computación.

Si el marco de datos cabe en la memoria de un controlador y desea guardarlo en el sistema de archivos local, puede convertir Spark DataFrame en Pandas DataFrame local usando toPandas método y luego simplemente use to_csv:

df.toPandas().to_csv('mycsv.csv')

De lo contrario, puede usar spark-csv:

  • Chispa 1.3

    df.save('mycsv.csv', 'com.databricks.spark.csv')
    
  • Chispa 1.4+

    df.write.format('com.databricks.spark.csv').save('mycsv.csv')
    

En Spark 2.0+ puedes usar csv fuente de datos directamente:

df.write.csv('mycsv.csv')

Para Apache Spark 2+, para guardar el marco de datos en un solo archivo csv. Usar el siguiente comando

query.repartition(1).write.csv("cc_out.csv", sep='|')

Aquí 1 indicar que necesito una partición de csv solamente. Puedes cambiarlo según tus requisitos.

Si no puede usar spark-csv, puede hacer lo siguiente:

df.rdd.map(lambda x: ",".join(map(str, x))).coalesce(1).saveAsTextFile("file.csv")

Si necesita manejar cadenas con saltos de línea o comas, eso no funcionará. Utilizar esta:

import csv
import cStringIO

def row2csv(row):
    buffer = cStringIO.StringIO()
    writer = csv.writer(buffer)
    writer.writerow([str(s).encode("utf-8") for s in row])
    buffer.seek(0)
    return buffer.read().strip()

df.rdd.map(row2csv).coalesce(1).saveAsTextFile("file.csv")

Comentarios y puntuaciones del tutorial

Acuérdate de que tienes permiso de añadir una estimación acertada .

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


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

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