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 pysparkfra 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 pysparkfra 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 pysparkfra 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 pysparkfra 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 pysparkfra 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.