PySpark Læs CSV()

Pyspark Laes Csv



Konstruktion af PySpark DataFrame fra CSV-data er muligt i PySpark ved hjælp af read.csv()-funktionen. I nogle scenarier, hvis du ønsker at indlæse de eksterne data i PySpark DataFrame, understøtter PySpark mange formater som JSON, CSV osv. I denne tutorial vil vi se, hvordan du læser CSV-dataene og indlæser dem i PySpark DataFrame. Vi vil også diskutere indlæsning af flere CSV-filer i en enkelt DataFrame ad gangen med eksempler.

Pyspark.sql.DataFrameReader.csv()

Denne metode bruges til at læse dataene fra CSV-filen/filerne og gemme dem i PySpark DataFrame. Det tager mulighederne, mens du læser CSV ind i DataFrame. Vi vil diskutere de forskellige muligheder med eksempler i detaljer. Mens du sender mere end én CSV-fil, er det vigtigt at sende filnavnene med filtypenavnet på en liste, der er adskilt af kommaoperatoren. Hvis du kun læser én CSV-fil, er det ikke nødvendigt at angive filnavnet på en liste.

Syntaks:







Enkelt fil - spark_app.read.csv('file.csv', muligheder …)

Flere filer – spark_app.read.csv(['fil1.csv','fil2.csv',...],indstillinger...)



Det kan også være muligt at adskille indstillinger og filnavne.



Enkelt fil – spark_app.read.options(options…).csv(‘file.csv’)





Flere filer – spark_app.read.options(options...).csv(['fil1.csv','fil2.csv',...])

Installer PySpark-biblioteket, før du implementerer følgende eksempler.



pip installer pyspark

Efter den vellykkede installation kan du se output som følger:

Scenarie 1: Læsning af CSV-filens overskrift

Lad os oprette en CSV-fil med navnet 'person_skill.csv' med 5 poster, som er vist i det følgende og indlæse den i PySpark DataFrame:

Header-parameteren bruges til at angive kolonnenavnene i PySpark DataFrame. Det tager en boolsk værdi. Hvis det er 'True', er de faktiske kolonnenavne, der findes i CSV-filen, angivet i DataFrame, ellers angives c0, c1, c2... og de faktiske kolonnenavne vil være en række. Det er bedst at sætte header-parameteren til sand.

Eksempel 1: Overskrift = Sand

importere pyspark

fra pyspark.sql importer SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux-tip' ).getOrCreate()

# Indlæs csv-navnet - person_skill.csv i færdigheder med kolonneetiketter med overskrift

færdigheder = linuxhint_spark_app.read.csv( 'person_skill.csv' , header =Sandt)

# Vis DataFrame

skills.show()

Produktion:

Forklaring:

Vi kan se, at PySpark DataFrame er oprettet fra CSV-filen med specificerede kolonner og rækker.

Brug følgende kommando til at kontrollere kolonnerne:

færdigheder.kolonner

Eksempel 2: Overskrift = Falsk

importere pyspark

fra pyspark.sql importer SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux-tip' ).getOrCreate()

# Indlæs csv-navnet - person_skill.csv i færdigheder med kolonneetiketter uden overskrift

færdigheder = linuxhint_spark_app.read.csv( 'person_skill.csv' , header = Falsk)

# Vis DataFrame

skills.show()

Produktion:

Forklaring:

Vi kan se, at PySpark DataFrame er oprettet fra CSV-filen uden eksisterende kolonner.

De eksisterende kolonner gemmes også som rækker i PySpark DataFrame.

færdigheder.kolonner

Brug af Read.options.csv()

Nu læser vi CSV-filen ved hjælp af read.options.csv()-metoden. Her skal vi videregive muligheder som afgrænser, overskrift osv. i indstillingerne som argumenter og filnavn i csv(). Lad os videregive header-parameteren ved at sætte den til 'True'.

Scenarie 1:

importere pyspark

fra pyspark.sql importer SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux-tip' ).getOrCreate()

# Brug af read.options.csv()

færdigheder = linuxhint_spark_app.read. muligheder ( header =True).csv( 'person_skill.csv' )

# Vis DataFrame

skills.show()

Produktion:

Scenarie 2: Læsning af CSV-filafgrænseren

Parameteren afgrænser tager det tegn, som bruges til at adskille hvert felt. Det tager som standard et komma (,). Lad os bruge den samme CSV-fil, som bruges i det første scenarie, og sende kommaet (',') som afgrænsningstegnet.

importere pyspark

fra pyspark.sql importer SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux-tip' ).getOrCreate()

# Brug af read.options.csv() med skilletegn sammen med overskrift

færdigheder = linuxhint_spark_app.read. muligheder ( header =Sandt, afgrænser= ',' ).csv( 'person_skill.csv' )

# Vis DataFrame

skills.show()

Produktion:

Læsning af flere filer

Indtil nu har vi læst en enkelt CSV-fil. Lad os se, hvordan du læser mere end én CSV-fil. I dette scenarie tilføjes rækkerne i flere filer i en enkelt PySpark DataFrame. Vi skal blot sende filnavnene i en liste i metoden.

Eksempel:

Lad os have følgende CSV-filer med navnet 'person_skill.csv' og 'person_skill2.csv' med følgende data:


Læs disse to CSV-filer og gem dem i en enkelt PySpark DataFrame.

importere pyspark

fra pyspark.sql importer SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux-tip' ).getOrCreate()

# Indlæs 2 csv-filer med navnet - person_skill.csv og person_skill2.csv i færdigheder med kolonneetiketter med overskrift

færdigheder = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sep= ',' , header =Sandt)

skills.show()

Produktion:

Forklaring:

Den første CSV indeholder 6 poster, og den anden CSV har 3 poster. Vi kan se, at den første CSV indlæses i DataFrame først. Derefter indlæses den anden CSV. Endelig har PySpark DataFrame 9 poster.

Konklusion

At læse CSV'en ind i PySpark DataFrame er ret simpelt med pyspark.sql.DataFrameReader.csv() metoden. Det kan være muligt at overføre header- og afgrænsningsparametrene til denne metode for at specificere kolonnerne og formatet. PySpark understøtter også læsning af flere CSV-filer ad gangen med de medfølgende metoder sammen med deres muligheder. I denne artikel har vi set eksemplerne ved at overveje forskellige muligheder. Vi har også set to måder at overføre mulighederne til metoden.