Pyspark.sql.DataFrameReader.csv()
Šo metodi izmanto, lai nolasītu datus no CSV faila/-iem un saglabātu tos PySpark DataFrame. Tas izmanto opcijas, lasot CSV failu DataFrame. Mēs detalizēti apspriedīsim dažādas iespējas ar piemēriem. Nododot vairāk nekā vienu CSV failu, ir svarīgi nodot failu nosaukumus ar paplašinājumiem sarakstā, kas ir atdalīts ar komatu. Ja lasāt tikai vienu CSV failu, faila nosaukums sarakstā nav jānorāda.
Sintakse:
Viens fails — spark_app.read.csv('file.csv', iespējas …)
Vairāki faili – spark_app.read.csv (['file1.csv','file2.csv',…], opcijas…)
Var būt arī iespējams atdalīt opcijas un failu nosaukumus.
Viens fails – spark_app.read.options(options…).csv('file.csv')
Vairāki faili – spark_app.read.options(options…).csv(['fails1.csv','file2.csv',…])
Pirms tālāk norādīto piemēru ieviešanas instalējiet PySpark bibliotēku.
pip instalēt pyspark
Pēc veiksmīgas instalēšanas rezultātu var redzēt šādi:
1. scenārijs: CSV faila galvenes lasīšana
Izveidosim CSV failu ar nosaukumu “person_skill.csv” ar 5 ierakstiem, kas parādīts tālāk, un ielādēsim to PySpark DataFrame:
Galvenes parametrs tiek izmantots, lai norādītu kolonnu nosaukumus PySpark DataFrame. Tam nepieciešama Būla vērtība. Ja tas ir “True”, faktiskie kolonnu nosaukumi, kas atrodas CSV failā, ir norādīti DataFrame, pretējā gadījumā tiek norādīti c0, c1, c2… un faktiskie kolonnu nosaukumi būs rinda. Vislabāk ir iestatīt galvenes parametru uz True.
1. piemērs: galvene = patiess
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# Ielādējiet csv failu ar nosaukumu - person_skill.csv prasmēs ar kolonnu etiķetēm ar galveni
prasmes = linuxhint_spark_app.read.csv( 'person_skill.csv' , galvene =Tiesa)
# Parādiet DataFrame
prasmes.show()
Izvade:
Paskaidrojums:
Mēs redzam, ka PySpark DataFrame ir izveidots no CSV faila ar noteiktām kolonnām un rindām.
Izmantojiet šo komandu, lai pārbaudītu kolonnas:
prasmes.kolonnas
2. piemērs: galvene = False
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# Ielādējiet csv failu ar nosaukumu - person_skill.csv prasmēs ar kolonnu etiķetēm bez galvenes
prasmes = linuxhint_spark_app.read.csv( 'person_skill.csv' , galvene =Nepatiesi)
# Parādiet DataFrame
prasmes.show()
Izvade:
Paskaidrojums:
Mēs redzam, ka PySpark DataFrame ir izveidots no CSV faila bez esošām kolonnām.
Arī esošās kolonnas tiek saglabātas kā rindas PySpark DataFrame.
prasmes.kolonnas
Izmantojot Read.options.csv()
Tagad mēs lasām CSV failu, izmantojot metodi read.options.csv(). Šeit mums ir jānodod tādas opcijas kā atdalītājs, galvene utt. opcijās kā argumenti un faila nosaukums failā csv (). Nodosim galvenes parametru, iestatot to uz “True”.
1. scenārijs:
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# Izmantojot read.options.csv()
prasmes = linuxhint_spark_app.read. iespējas ( galvene =True).csv( 'person_skill.csv' )
# Parādiet DataFrame
prasmes.show()
Izvade:
2. scenārijs: CSV faila norobežotāja lasīšana
Norobežotāja parametrs aizņem rakstzīmi, kas tiek izmantota katra lauka atdalīšanai. Pēc noklusējuma tas aizņem komatu (,). Izmantosim to pašu CSV failu, kas tiek izmantots pirmajā scenārijā, un kā atdalītāju ievietosim komatu (',').
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# Izmantojot read.options.csv() ar atdalītāju kopā ar galveni
prasmes = linuxhint_spark_app.read. iespējas ( galvene =Patiess, norobežotājs= ',' .csv( 'person_skill.csv' )
# Parādiet DataFrame
prasmes.show()
Izvade:
Vairāku failu lasīšana
Līdz šim mēs esam lasījuši vienu CSV failu. Apskatīsim, kā lasīt vairāk nekā vienu CSV failu. Šajā scenārijā rindas vairākos failos tiek pievienotas vienā PySpark DataFrame. Mums vienkārši jānodod failu nosaukumi sarakstā metodes ietvaros.
Piemērs:
Iegūsim šādus CSV failus ar nosaukumu “person_skill.csv” un “person_skill2.csv” ar šādiem datiem:
Izlasiet šos divus CSV failus un saglabājiet tos vienā PySpark DataFrame.
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# Ielādējiet prasmēs 2 csv failus ar nosaukumu person_skill.csv un person_skill2.csv ar kolonnu etiķetēm ar galveni
prasmes = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sept= ',' , galvene =Tiesa)
prasmes.show()
Izvade:
Paskaidrojums:
Pirmajā CSV ir 6 ieraksti, bet otrajā CSV ir 3 ieraksti. Mēs redzam, ka pirmais CSV tiek ielādēts DataFrame vispirms. Pēc tam tiek ielādēts otrais CSV fails. Visbeidzot, PySpark DataFrame satur 9 ierakstus.
Secinājums
CSV nolasīšana PySpark DataFrame ir diezgan vienkārša, izmantojot pyspark.sql.DataFrameReader.csv() metodi. Šai metodei var būt iespējams nodot galvenes un norobežotāja parametrus, lai norādītu kolonnas un formātu. PySpark atbalsta arī vairāku CSV failu lasīšanu vienlaikus, izmantojot piedāvātās metodes, kā arī to iespējas. Šajā rakstā mēs esam redzējuši piemērus, apsverot dažādas iespējas. Mēs esam arī redzējuši divus veidus, kā opcijas pārnest uz metodi.