PySpark Leer CSV ()

Pyspark Leer Csv



Es posible construir PySpark DataFrame a partir de los datos CSV en PySpark usando la función read.csv(). En algunos escenarios, si desea cargar los datos externos en PySpark DataFrame, PySpark admite muchos formatos como JSON, CSV, etc. En este tutorial, veremos cómo leer los datos CSV y cargarlos en PySpark DataFrame. Además, analizaremos la carga de varios archivos CSV en un solo DataFrame a la vez con ejemplos.

Pyspark.sql.DataFrameReader.csv()

Este método se utiliza para leer los datos de los archivos CSV y almacenarlos en PySpark DataFrame. Toma las opciones mientras lee CSV en el DataFrame. Discutiremos las diferentes opciones con ejemplos en detalle. Al pasar más de un archivo CSV, es importante pasar los nombres de archivo con extensión en una lista separada por el operador de coma. Si solo está leyendo un archivo CSV, no es necesario proporcionar el nombre del archivo en una lista.

Sintaxis:







Archivo único - spark_app.read.csv('file.csv', opciones …)

Múltiples archivos – spark_app.read.csv([‘file1.csv’,’file2.csv’,…],opciones…)



También puede ser posible separar las opciones y los nombres de los archivos.



Fila india – spark_app.read.options(opciones…).csv(‘archivo.csv’)





Múltiples archivos – spark_app.read.options(opciones…).csv([‘file1.csv’,’file2.csv’,…])

Instale la biblioteca PySpark antes de implementar los siguientes ejemplos.



pip instalar pyspark

Después de la instalación exitosa, puede ver el resultado de la siguiente manera:

Escenario 1: lectura del encabezado del archivo CSV

Vamos a crear un archivo CSV llamado 'person_skill.csv' con 5 registros que se muestra a continuación y cargarlo en PySpark DataFrame:

El parámetro de encabezado se usa para especificar los nombres de las columnas en PySpark DataFrame. Toma un valor booleano. Si es 'Verdadero', los nombres de las columnas reales que existen en el archivo CSV se especifican en el DataFrame. De lo contrario, se especifican c0, c1, c2... y los nombres de las columnas reales serán una fila. Se recomienda establecer el parámetro de encabezado en verdadero.

Ejemplo 1: Encabezado = Verdadero

importar pyspark

desde pyspark.sql importar SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Sugerencia de Linux' ).getOrCreate()

# Cargue el csv llamado - person_skill.csv en habilidades con etiquetas de columna con encabezado

habilidades = linuxhint_spark_app.read.csv( 'person_skill.csv' , encabezamiento =Verdadero)

# Mostrar el marco de datos

skills.show()

Producción:

Explicación:

Podemos ver que PySpark DataFrame se crea a partir del archivo CSV con columnas y filas especificadas.

Use el siguiente comando para verificar las columnas:

habilidades.columnas

Ejemplo 2: Encabezado = Falso

importar pyspark

desde pyspark.sql importar SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Sugerencia de Linux' ).getOrCreate()

# Cargue el csv llamado - person_skill.csv en habilidades con etiquetas de columna sin encabezado

habilidades = linuxhint_spark_app.read.csv( 'person_skill.csv' , encabezamiento =Falso)

# Mostrar el marco de datos

skills.show()

Producción:

Explicación:

Podemos ver que PySpark DataFrame se crea a partir del archivo CSV sin columnas existentes.

Además, las columnas existentes se almacenan como filas en PySpark DataFrame.

habilidades.columnas

Usando Read.options.csv()

Ahora, leemos el archivo CSV usando el método read.options.csv(). Aquí, debemos pasar las opciones como delimitador, encabezado, etc. en las opciones como argumentos y nombre de archivo en csv(). Pasemos el parámetro del encabezado configurándolo en 'Verdadero'.

Escenario 1:

importar pyspark

desde pyspark.sql importar SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Sugerencia de Linux' ).getOrCreate()

# Uso de read.options.csv()

habilidades = linuxhint_spark_app.read. opciones ( encabezamiento =Verdadero).csv( 'person_skill.csv' )

# Mostrar el marco de datos

skills.show()

Producción:

Escenario 2: lectura del delimitador de archivo CSV

El parámetro delimitador toma el carácter que se usa para separar cada campo. Lleva una coma (,) por defecto. Usemos el mismo archivo CSV que se usa en el primer escenario y pasemos la coma (',') como delimitador.

importar pyspark

desde pyspark.sql importar SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Sugerencia de Linux' ).getOrCreate()

# Usando read.options.csv() con delimitador junto con el encabezado

habilidades = linuxhint_spark_app.read. opciones ( encabezamiento =Verdadero, delimitador= ',' ).csv( 'person_skill.csv' )

# Mostrar el marco de datos

skills.show()

Producción:

Lectura de varios archivos

Hasta ahora, hemos estado leyendo un solo archivo CSV. Veamos cómo leer más de un archivo CSV. En este escenario, las filas en varios archivos se agregan en un solo PySpark DataFrame. Solo necesitamos pasar los nombres de los archivos en una lista dentro del método.

Ejemplo:

Tengamos los siguientes archivos CSV llamados 'person_skill.csv' y 'person_skill2.csv' con los siguientes datos:


Lea estos dos archivos CSV y guárdelos en un solo PySpark DataFrame.

importar pyspark

desde pyspark.sql importar SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Sugerencia de Linux' ).getOrCreate()

# Cargue 2 archivos csv llamados - person_skill.csv y person_skill2.csv en habilidades con etiquetas de columna con encabezado

habilidades = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sep= ',' , encabezamiento =Verdadero)

skills.show()

Producción:

Explicación:

El primer CSV tiene 6 registros y el segundo CSV tiene 3 registros. Podemos ver que el primer CSV se carga primero en el DataFrame. Luego, se carga el segundo CSV. Finalmente, PySpark DataFrame contiene 9 registros.

Conclusión

Leer el CSV en PySpark DataFrame es bastante simple con el método pyspark.sql.DataFrameReader.csv(). Puede ser posible pasar los parámetros de encabezado y delimitador a este método para especificar las columnas y el formato. PySpark también admite la lectura de varios archivos CSV a la vez con los métodos proporcionados junto con sus opciones. En este artículo, hemos visto los ejemplos considerando diferentes opciones. Además, hemos visto dos formas de pasar las opciones al método.