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ť pysparkz 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ť pysparkz 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ť pysparkz 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ť pysparkz 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ť pysparkz 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.