PySpark Prečítajte si CSV()

Pyspark Precitajte Si Csv



Vytvorenie dátového rámca PySpark z údajov CSV je možné v PySpark pomocou funkcie read.csv(). V niektorých scenároch, ak chcete načítať externé dáta do PySpark DataFrame, PySpark podporuje mnoho formátov ako JSON, CSV atď. V tomto návode uvidíme, ako čítať CSV dáta a načítať ich do PySpark DataFrame. Tiež budeme diskutovať o načítaní viacerých súborov CSV v jednom DataFrame naraz s príkladmi.

Pyspark.sql.DataFrameReader.csv()

Táto metóda sa používa na čítanie údajov zo súboru/súborov CSV a ich uloženie do dátového rámca PySpark. Preberá možnosti pri čítaní CSV do DataFrame. Podrobne rozoberieme rôzne možnosti s príkladmi. Pri odovzdávaní viac ako jedného súboru CSV je dôležité odovzdať názvy súborov s príponou v zozname, ktorý je oddelený operátorom čiarky. Ak čítate iba jeden súbor CSV, nie je potrebné uvádzať názov súboru v zozname.

Syntax:







Jeden súbor - spark_app.read.csv(‘súbor.csv‘, možnosti …)

Viaceré súbory – spark_app.read.csv([‘súbor1.csv‘,‘súbor2.csv‘,…],možnosti…)



Je tiež možné oddeliť možnosti a názvy súborov.



Jeden súbor – spark_app.read.options(options...).csv(‘file.csv’)





Viaceré súbory – spark_app.read.options(options...).csv([‘file1.csv’,’file2.csv’,…])

Pred implementáciou nasledujúcich príkladov nainštalujte knižnicu PySpark.



pip install pyspark

Po úspešnej inštalácii môžete vidieť výstup takto:

Scenár 1: Čítanie hlavičky súboru CSV

Vytvorme súbor CSV s názvom „person_skill.csv“ s 5 záznamami, ktoré sú zobrazené nižšie, a načítajme ho do dátového rámca PySpark:

Parameter hlavičky sa používa na špecifikáciu názvov stĺpcov v PySpark DataFrame. Má boolovskú hodnotu. Ak je to „True“, skutočné názvy stĺpcov, ktoré existujú v súbore CSV, sú špecifikované v DataFrame, inak sú špecifikované c0, c1, c2… a skutočné názvy stĺpcov budú riadky. Najlepšie je nastaviť parameter hlavičky na hodnotu true.

Príklad 1: Hlavička = True

importovať pyspark

z pyspark.sql importujte SparkSession

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

# Načítajte súbor csv s názvom - person_skill.csv do zručností s menovkami stĺpcov s hlavičkou

skills = linuxhint_spark_app.read.csv( 'person_skill.csv' , hlavička = Pravda)

# Zobrazte DataFrame

skills.show()

Výkon:

Vysvetlenie:

Vidíme, že PySpark DataFrame je vytvorený zo súboru CSV so špecifikovanými stĺpcami a riadkami.

Na kontrolu stĺpcov použite nasledujúci príkaz:

zručnosti.stĺpce

Príklad 2: Hlavička = False

importovať pyspark

z pyspark.sql importujte SparkSession

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

# Načítajte súbor csv s názvom - person_skill.csv do zručností s menovkami stĺpcov bez hlavičky

skills = linuxhint_spark_app.read.csv( 'person_skill.csv' , hlavička =False)

# Zobrazte DataFrame

skills.show()

Výkon:

Vysvetlenie:

Vidíme, že PySpark DataFrame je vytvorený zo súboru CSV bez existujúcich stĺpcov.

Existujúce stĺpce sú tiež uložené ako riadky v PySpark DataFrame.

zručnosti.stĺpce

Pomocou Read.options.csv()

Teraz si prečítame súbor CSV pomocou metódy read.options.csv(). Tu musíme odovzdať možnosti ako oddeľovač, hlavička atď. v možnostiach ako argumenty a názov súboru v csv (). Odovzdajme parameter hlavičky nastavením na „True“.

Scenár 1:

importovať pyspark

z pyspark.sql importujte SparkSession

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

# Pomocou read.options.csv()

skills = linuxhint_spark_app.read. možnosti ( hlavička =True).csv( 'person_skill.csv' )

# Zobrazte DataFrame

skills.show()

Výkon:

Scenár 2: Čítanie oddeľovača súboru CSV

Parameter oddeľovača má znak, ktorý sa používa na oddelenie každého poľa. Štandardne to trvá čiarku (,). Použime rovnaký súbor CSV, aký sa používa v prvom scenári, a ako oddeľovač dáme čiarku (‘,’).

importovať pyspark

z pyspark.sql importujte SparkSession

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

# Použitie read.options.csv() s oddeľovačom spolu s hlavičkou

skills = linuxhint_spark_app.read. možnosti ( hlavička =Pravda, oddeľovač= ',' .csv( 'person_skill.csv' )

# Zobrazte DataFrame

skills.show()

Výkon:

Čítanie viacerých súborov

Doteraz sme čítali jeden súbor CSV. Pozrime sa, ako čítať viac ako jeden súbor CSV. V tomto scenári sú riadky vo viacerých súboroch pripojené do jedného dátového rámca PySpark. Potrebujeme len odovzdať názvy súborov v zozname v rámci metódy.

Príklad:

Majme nasledujúce súbory CSV s názvom „person_skill.csv“ a „person_skill2.csv“ s nasledujúcimi údajmi:


Prečítajte si tieto dva súbory CSV a uložte ich do jedného dátového rámca PySpark.

importovať pyspark

z pyspark.sql importujte SparkSession

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

# Načítajte 2 súbory csv s názvom - person_skill.csv a person_skill2.csv do zručností s menovkami stĺpcov s hlavičkou

skills = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sept= ',' , hlavička = Pravda)

skills.show()

Výkon:

Vysvetlenie:

Prvý CSV má 6 záznamov a druhý CSV má 3 záznamy. Vidíme, že prvý CSV sa načíta do DataFrame ako prvý. Potom sa načíta druhý súbor CSV. Nakoniec PySpark DataFrame obsahuje 9 záznamov.

Záver

Čítanie CSV do PySpark DataFrame je celkom jednoduché pomocou metódy pyspark.sql.DataFrameReader.csv(). Tejto metóde je možné odovzdať parametre hlavičky a oddeľovača, aby sa určili stĺpce a formát. PySpark tiež podporuje čítanie viacerých súborov CSV naraz pomocou poskytnutých metód spolu s ich možnosťami. V tomto článku sme videli príklady zvažovaním rôznych možností. Tiež sme videli dva spôsoby odovzdania možností metóde.