PySpark Llegir CSV()

Pyspark Llegir Csv



La construcció del PySpark DataFrame a partir de les dades CSV és possible a PySpark mitjançant la funció read.csv(). En alguns escenaris, si voleu carregar les dades externes al PySpark DataFrame, PySpark admet molts formats com JSON, CSV, etc. En aquest tutorial, veurem com llegir les dades CSV i carregar-les al PySpark DataFrame. A més, parlarem de la càrrega de diversos fitxers CSV en un únic DataFrame alhora amb exemples.

Pyspark.sql.DataFrameReader.csv()

Aquest mètode s'utilitza per llegir les dades dels fitxers CSV i emmagatzemar-les al PySpark DataFrame. Pren les opcions mentre llegeix CSV al DataFrame. Parlarem de les diferents opcions amb exemples en detall. Mentre es passa més d'un fitxer CSV, és important passar els noms dels fitxers amb extensió en una llista separada per l'operador de comes. Si només esteu llegint un fitxer CSV, no cal que proporcioneu el nom del fitxer en una llista.

Sintaxi:







Fitxer únic - spark_app.read.csv(‘fitxer.csv’, opcions …)

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



També pot ser possible separar les opcions i els noms dels fitxers.



Fitxa única – spark_app.read.options(opcions…).csv(‘fitxer.csv’)





Múltiples fitxers – spark_app.read.options(opcions…).csv([‘fitxer1.csv’,’fitxer2.csv’,…])

Instal·leu la biblioteca PySpark abans d'implementar els exemples següents.



pip instal·lar pyspark

Després de la instal·lació correcta, podeu veure la sortida de la següent manera:

Escenari 1: lectura de la capçalera del fitxer CSV

Creem un fitxer CSV anomenat 'person_skill.csv' amb 5 registres que es mostra a continuació i carreguem-lo al PySpark DataFrame:

El paràmetre de capçalera s'utilitza per especificar els noms de columnes al PySpark DataFrame. Pren un valor booleà. Si és 'True', els noms de columnes reals que existeixen al fitxer CSV s'especifiquen al DataFrame. En cas contrari, s'especifiquen c0, c1, c2... i els noms de columnes reals seran una fila. El millor és establir el paràmetre de capçalera com a true.

Exemple 1: Capçalera = True

importar pyspark

des de pyspark.sql importació SparkSession

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

# Carregueu el csv anomenat - person_skill.csv a les habilitats amb etiquetes de columna amb capçalera

habilitats = linuxhint_spark_app.read.csv( 'persona_habilitat.csv' , capçalera =Veritat)

# Mostra el DataFrame

skills.show()

Sortida:

Explicació:

Podem veure que el PySpark DataFrame es crea a partir del fitxer CSV amb columnes i files especificades.

Utilitzeu l'ordre següent per comprovar les columnes:

habilitats.columnes

Exemple 2: Capçalera = Fals

importar pyspark

des de pyspark.sql importació SparkSession

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

# Carregueu el csv anomenat - person_skill.csv a les habilitats amb etiquetes de columna sense capçalera

habilitats = linuxhint_spark_app.read.csv( 'persona_habilitat.csv' , capçalera = Fals)

# Mostra el DataFrame

skills.show()

Sortida:

Explicació:

Podem veure que el PySpark DataFrame es crea a partir del fitxer CSV sense columnes existents.

A més, les columnes existents s'emmagatzemen com a files al PySpark DataFrame.

habilitats.columnes

Ús de Read.options.csv()

Ara, llegim el fitxer CSV mitjançant el mètode read.options.csv(). Aquí, hem de passar les opcions com el delimitador, la capçalera, etc. a les opcions com a arguments i el nom del fitxer al csv(). Passem el paràmetre de la capçalera configurant-lo a 'True'.

Escenari 1:

importar pyspark

des de pyspark.sql importació SparkSession

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

# Utilitzant read.options.csv()

habilitats = linuxhint_spark_app.read. opcions ( capçalera =Veritat).csv( 'persona_habilitat.csv' )

# Mostra el DataFrame

skills.show()

Sortida:

Escenari 2: lectura del delimitador de fitxers CSV

El paràmetre delimitador pren el caràcter que s'utilitza per separar cada camp. Pren una coma (,) per defecte. Utilitzem el mateix fitxer CSV que s'utilitza en el primer escenari i passem la coma (',') com a delimitador.

importar pyspark

des de pyspark.sql importació SparkSession

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

# Utilitzant read.options.csv() amb el delimitador juntament amb la capçalera

habilitats = linuxhint_spark_app.read. opcions ( capçalera =Veritat, delimitador= ',' ).csv( 'persona_habilitat.csv' )

# Mostra el DataFrame

skills.show()

Sortida:

Lectura de diversos fitxers

Fins ara, hem estat llegint un únic fitxer CSV. Vegem com llegir més d'un fitxer CSV. En aquest escenari, les files de diversos fitxers s'afegeixen en un únic PySpark DataFrame. Només hem de passar els noms dels fitxers en una llista dins del mètode.

Exemple:

Tinguem els següents fitxers CSV anomenats 'person_skill.csv' i 'person_skill2.csv' amb les dades següents:


Llegiu aquests dos fitxers CSV i deseu-los en un únic PySpark DataFrame.

importar pyspark

des de pyspark.sql importació SparkSession

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

# Carregueu 2 fitxers csv anomenats - person_skill.csv i person_skill2.csv a les habilitats amb etiquetes de columna amb capçalera

habilitats = linuxhint_spark_app.read.csv([ 'persona_habilitat.csv' , 'persona_habilitat2.csv' ],set= ',' , capçalera =Veritat)

skills.show()

Sortida:

Explicació:

El primer CSV té 6 registres i el segon CSV en té 3. Podem veure que el primer CSV es carrega primer al DataFrame. A continuació, es carrega el segon CSV. Finalment, el PySpark DataFrame té 9 registres.

Conclusió

Llegir el CSV al PySpark DataFrame és bastant senzill amb el mètode pyspark.sql.DataFrameReader.csv(). Pot ser possible passar els paràmetres de capçalera i delimitador a aquest mètode per tal d'especificar les columnes i el format. PySpark també admet la lectura de diversos fitxers CSV alhora amb els mètodes proporcionats juntament amb les seves opcions. En aquest article, hem vist els exemples considerant diferents opcions. A més, hem vist dues maneres de passar les opcions al mètode.