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