PySpark čita CSV()

Pyspark Cita Csv



Konstruiranje PySpark DataFramea iz CSV podataka moguće je u PySparku pomoću funkcije read.csv(). U nekim scenarijima, ako želite učitati vanjske podatke u PySpark DataFrame, PySpark podržava mnoge formate kao što su JSON, CSV, itd. U ovom vodiču ćemo vidjeti kako čitati CSV podatke i učitati ih u PySpark DataFrame. Također, raspravljat ćemo o istovremenom učitavanju više CSV datoteka u jedan DataFrame s primjerima.

Pyspark.sql.DataFrameReader.csv()

Ova se metoda koristi za čitanje podataka iz CSV datoteka/datoteka i njihovo pohranjivanje u PySpark DataFrame. Uzima opcije dok čita CSV u DataFrame. Razgovarat ćemo o različitim opcijama s primjerima u detalje. Prilikom prosljeđivanja više od jedne CSV datoteke, važno je proslijediti nazive datoteka s ekstenzijom na popisu koji je odvojen operatorom zarezom. Ako čitate samo jednu CSV datoteku, nema potrebe davati naziv datoteke na popisu.

Sintaksa:







Jedna datoteka - spark_app.read.csv('file.csv', opcije …)

Više datoteka – spark_app.read.csv(['file1.csv','file2.csv',…],opcije…)



Također je moguće odvojiti opcije i nazive datoteka.



Jedna datoteka – spark_app.read.options(options…).csv(‘file.csv’)





Više datoteka – spark_app.read.options(options…).csv([‘file1.csv’,’file2.csv’,…])

Instalirajte biblioteku PySpark prije implementacije sljedećih primjera.



pip instaliraj pyspark

Nakon uspješne instalacije, možete vidjeti izlaz kako slijedi:

Scenarij 1: čitanje zaglavlja CSV datoteke

Kreirajmo CSV datoteku pod nazivom 'person_skill.csv' s 5 zapisa koji su prikazani u nastavku i učitajmo je u PySpark DataFrame:

Parametar zaglavlja koristi se za određivanje naziva stupaca u PySpark DataFrame. Potrebna je Booleova vrijednost. Ako je 'Istina', stvarni nazivi stupaca koji postoje u CSV datoteci navedeni su u DataFrameu, u suprotnom, navedeni su c0, c1, c2... i stvarni nazivi stupaca bit će redak. Najbolje je postaviti parametar zaglavlja na true.

Primjer 1: Zaglavlje = True

uvoz pyspark

iz pyspark.sql uvesti SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Učitajte csv pod nazivom - person_skill.csv u vještine s oznakama stupaca sa zaglavljem

vještine = linuxhint_spark_app.read.csv( 'person_skill.csv' , Zaglavlje =Istina)

# Prikaži DataFrame

vještine.show()

Izlaz:

Obrazloženje:

Vidimo da je PySpark DataFrame kreiran iz CSV datoteke s navedenim stupcima i redcima.

Koristite sljedeću naredbu za provjeru stupaca:

vještine.kolone

Primjer 2: Zaglavlje = False

uvoz pyspark

iz pyspark.sql uvesti SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux savjet' ).getOrCreate()

# Učitajte csv pod nazivom - person_skill.csv u vještine s oznakama stupaca bez zaglavlja

vještine = linuxhint_spark_app.read.csv( 'person_skill.csv' , Zaglavlje =Netočno)

# Prikaži DataFrame

vještine.show()

Izlaz:

Obrazloženje:

Vidimo da je PySpark DataFrame kreiran iz CSV datoteke bez postojećih stupaca.

Također, postojeći stupci pohranjuju se kao redovi u PySpark DataFrame.

vještine.kolone

Korištenje Read.options.csv()

Sada čitamo CSV datoteku pomoću metode read.options.csv(). Ovdje moramo proslijediti opcije poput graničnika, zaglavlja itd. u opcijama kao argumente i naziv datoteke u csv(). Proslijedimo parametar zaglavlja tako da ga postavimo na 'True'.

Scenarij 1:

uvoz pyspark

iz pyspark.sql uvesti SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Korištenje read.options.csv()

vještine = linuxhint_spark_app.read. opcije ( Zaglavlje =Istina).csv( 'person_skill.csv' )

# Prikaži DataFrame

vještine.show()

Izlaz:

Scenarij 2: Čitanje razdjelnika CSV datoteke

Parametar razdjelnika uzima znak koji se koristi za odvajanje svakog polja. Zadano je potreban zarez (,). Upotrijebimo istu CSV datoteku koja se koristi u prvom scenariju i prosledimo zarez (',') kao razdjelnik.

uvoz pyspark

iz pyspark.sql uvesti SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Korištenje read.options.csv() s razdjelnikom uz zaglavlje

vještine = linuxhint_spark_app.read. opcije ( Zaglavlje =Istina,razdjelnik= ',' ).csv( 'person_skill.csv' )

# Prikaži DataFrame

vještine.show()

Izlaz:

Čitanje više datoteka

Do sada smo čitali jednu CSV datoteku. Pogledajmo kako čitati više od jedne CSV datoteke. U ovom scenariju, retci u više datoteka dodaju se u jedan PySpark DataFrame. Samo trebamo proslijediti nazive datoteka na popisu unutar metode.

Primjer:

Uzmimo sljedeće CSV datoteke pod nazivom 'person_skill.csv' i 'person_skill2.csv' sa sljedećim podacima:


Pročitajte ove dvije CSV datoteke i pohranite ih u jedan PySpark DataFrame.

uvoz pyspark

iz pyspark.sql uvesti SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Učitaj 2 csv datoteke pod nazivom - person_skill.csv i person_skill2.csv u vještine s oznakama stupaca s zaglavljem

vještine = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],ruj= ',' , Zaglavlje =Istina)

vještine.show()

Izlaz:

Obrazloženje:

Prvi CSV sadrži 6 zapisa, a drugi CSV sadrži 3 zapisa. Vidimo da se prvi CSV prvi učitava u DataFrame. Zatim se učitava drugi CSV. Konačno, PySpark DataFrame sadrži 9 zapisa.

Zaključak

Čitanje CSV-a u PySpark DataFrame prilično je jednostavno pomoću metode pyspark.sql.DataFrameReader.csv(). Moguće je proslijediti parametre zaglavlja i graničnika ovoj metodi kako bi se odredili stupci i format. PySpark također podržava čitanje više CSV datoteka odjednom s ponuđenim metodama zajedno s njihovim opcijama. U ovom smo članku vidjeli primjere razmatrajući različite opcije. Također, vidjeli smo dva načina prosljeđivanja opcija metodi.