PySparki lugemine CSV()

Pysparki Lugemine Csv



PySpark DataFrame'i konstrueerimine CSV-andmetest on PySparkis võimalik funktsiooni read.csv() abil. Mõne stsenaariumi korral, kui soovite laadida PySpark DataFrame'i välisandmed, toetab PySpark paljusid vorminguid, nagu JSON, CSV jne. Selles õpetuses näeme, kuidas lugeda CSV-andmeid ja laadida need PySpark DataFrame'i. Samuti käsitleme näidetega mitme CSV-faili korraga laadimist ühte DataFrame'i.

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 pyspark

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

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

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

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

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