Pyspark.sql.DataFrameReader.csv()
Seda meetodit kasutatakse andmete lugemiseks CSV-failist/failidest ja salvestamiseks PySpark DataFrame'i. See võtab valikud CSV lugemisel DataFrame'i. Arutame üksikasjalikult näidetega erinevaid võimalusi. Rohkem kui ühe CSV-faili edastamisel on oluline edastada failinimed laiendiga loendis, mis on eraldatud komadega. Kui loete ainult ühte CSV-faili, pole failinime loendis vaja sisestada.
Süntaks:
Üks fail – spark_app.read.csv('file.csv', valikuid …)
Mitu faili – spark_app.read.csv(['file1.csv','file2.csv',…],valikud...)
Samuti võib olla võimalik eraldada suvandid ja failinimed.
Üks fail – spark_app.read.options(options…).csv('file.csv')
Mitu faili – spark_app.read.options(options…).csv(['file1.csv','file2.csv',…])
Enne järgmiste näidete rakendamist installige PySparki teek.
pip install pyspark
Pärast edukat installimist näete väljundit järgmiselt:
1. stsenaarium: CSV-faili päise lugemine
Loome 5 kirjega CSV-faili nimega „person_skill.csv”, mis on näidatud järgmises, ja laadime selle PySpark DataFrame'i:
Päise parameetrit kasutatakse PySpark DataFrame'i veergude nimede määramiseks. See võtab Boole'i väärtuse. Kui see on 'True', siis on DataFrame'is määratud CSV-failis olevad tegelikud veergude nimed, vastasel juhul määratakse c0, c1, c2… ja tegelikud veergude nimed on rida. Parim on määrata päise parameetri väärtuseks Tõene.
Näide 1: Päis = Tõene
import pysparkpyspark.sql-st importige SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# Laadige csv nimega - person_skill.csv päisega veergude siltidega oskustesse
oskused = linuxhint_spark_app.read.csv( „person_skill.csv” , päis =Tõsi)
# Kuva DataFrame
oskused.show()
Väljund:
Selgitus:
Näeme, et PySpark DataFrame luuakse määratud veergude ja ridadega CSV-failist.
Kasutage veergude kontrollimiseks järgmist käsku:
oskused.veerud
Näide 2: päis = vale
import pysparkpyspark.sql-st importige SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# Laadige csv nimega - person_skill.csv ilma päiseta veeru siltidega oskustesse
oskused = linuxhint_spark_app.read.csv( „person_skill.csv” , päis =Vale)
# Kuva DataFrame
oskused.show()
Väljund:
Selgitus:
Näeme, et PySpark DataFrame luuakse CSV-failist ilma olemasolevate veergudeta.
Olemasolevad veerud salvestatakse ka PySpark DataFrame'i ridadena.
oskused.veerud
Read.options.csv()
Nüüd loeme CSV-faili, kasutades meetodit read.options.csv(). Siin peame edastama suvandid, nagu eraldaja, päis jne, argumentidena ja failinimena csv(is). Edastage päise parameeter, määrates selle väärtuseks 'True'.
1. stsenaarium:
import pysparkpyspark.sql-st importige SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# Kasutades read.options.csv()
oskused = linuxhint_spark_app.read. valikuid ( päis =True).csv( „person_skill.csv” )
# Kuva DataFrame
oskused.show()
Väljund:
2. stsenaarium: CSV-faili eraldaja lugemine
Eraldaja parameeter võtab märgi, mida kasutatakse iga välja eraldamiseks. Vaikimisi kasutatakse koma (,). Kasutame sama CSV-faili, mida kasutati esimeses stsenaariumis, ja jätame eraldajaks koma (',').
import pysparkpyspark.sql-st importige SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# Kasutades read.options.csv() koos eraldajaga koos päisega
oskused = linuxhint_spark_app.read. valikuid ( päis =Tõsi, eraldaja= ',' .csv( „person_skill.csv” )
# Kuva DataFrame
oskused.show()
Väljund:
Mitme faili lugemine
Seni oleme lugenud ühte CSV-faili. Vaatame, kuidas lugeda rohkem kui ühte CSV-faili. Selle stsenaariumi korral lisatakse mitme faili read ühte PySpark DataFrame'i. Peame lihtsalt failinimed meetodi sees loendis edastama.
Näide:
Võtame järgmised CSV-failid nimedega „person_skill.csv” ja „person_skill2.csv” järgmiste andmetega:
Lugege neid kahte CSV-faili ja salvestage need ühte PySpark DataFrame'i.
import pysparkpyspark.sql-st importige SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# Laadige oskustesse 2 csv-faili nimega person_skill.csv ja person_skill2.csv päisega veergude siltidega
oskused = linuxhint_spark_app.read.csv([ „person_skill.csv” , „person_skill2.csv” ],sept= ',' , päis =Tõsi)
oskused.show()
Väljund:
Selgitus:
Esimene CSV sisaldab 6 ja teine CSV 3 kirjet. Näeme, et esimene CSV laaditakse DataFrame'i esimesena. Seejärel laaditakse teine CSV. Lõpuks hoiab PySpark DataFrame 9 kirjet.
Järeldus
CSV-faili PySpark DataFrame'i lugemine on pyspark.sql.DataFrameReader.csv() meetodiga üsna lihtne. Sellele meetodile võib olla võimalik edastada päise ja eraldaja parameetrid, et määrata veerge ja vormingut. PySpark toetab ka mitme CSV-faili korraga lugemist pakutavate meetoditega koos nende valikutega. Selles artiklis oleme näinud näiteid, kaaludes erinevaid võimalusi. Samuti oleme näinud kahte võimalust valikute meetodile üleandmiseks.