Dataframes je v dnešnom priemysle módnym slovom. Ľudia ju zvyknú používať v populárnych jazykoch používaných na analýzu údajov, ako sú Python, Scala a R.Navyše so zjavnou potrebou zvládnuť zložité úlohy analýzy a hromadného vyhľadávania pre Big Data, Python pre Spark alebo sa dnes stala jednou z najvyhľadávanejších zručností v priemysle.Čím to je, že ho všetci tak veľmi používajú? Poďme to pochopiť s naším Výukový program PySpark Dataframe blog. V tomto blogu sa budem venovať nasledujúcim témam:
- Čo sú to Dataframes?
- Prečo potrebujeme Dataframes?
- Vlastnosti dátových rámcov
- Zdroje dátového rámca PySpark
- Vytvorenie dátového rámca
- Pyspark Dataframes s FIFA World Cup a datasetom superhrdinov
Výukový program PySpark Dataframe: Čo sú to dátové rámce?
Dátové rámce vo všeobecnosti označujú dátovú štruktúru, ktorá má tabuľkovú povahu. Predstavuje riadky, z ktorých každý pozostáva z niekoľkých pozorovaní. Riadky môžu mať rôzne formáty údajov ( Heterogénne ), zatiaľ čo stĺpec môže obsahovať údaje rovnakého dátového typu ( Homogénna ). Dátové rámce zvyčajne obsahujú okrem údajov aj ďalšie metaúdaje, napríklad názvy stĺpcov a riadkov.
Môžeme povedať, že dátové rámce nie sú ničím, ale 2-dimenzionálnou dátovou štruktúrou podobnou tabuľke alebo tabuľkovému programu SQL. Teraz poďme ďalej s týmto Výukovým programom PySpark Dataframe a pochopme, prečo presne potrebujeme Pyspark Dataframe?
Prečo potrebujeme Dataframes?
1. Spracovanie štruktúrovaných a pološtruktúrovaných údajov
Dátové rámcesú určené na spracovaniedo veľký zhromažďovanie štruktúrovaných aj pološtruktúrovaných údajov . Pozorovania v Spark DataFrame sú usporiadané do pomenovaných stĺpcov, čo pomáha Apache Spark porozumieť schéme DataFrame. To pomáha spoločnosti Spark optimalizovať plán vykonávania týchto dotazov. Zvládne to tiež Petabajty údajov.
2.S licencovanie a kocky
Dátový rámec API zvyčajne podporuje prepracované metódy pre krájanie na kocky dáta. Obsahujeprevádzkaako je „výber“ riadkov, stĺpcov a buniek podľa názvu alebo čísla, filtrovanie riadkov atď. Štatistické údaje sú zvyčajne veľmi chaotické a obsahujú veľa chýbajúcich a nesprávnych hodnôt a rozsahov. Kriticky dôležitou vlastnosťou dátových rámcov je teda výslovná správa chýbajúcich údajov.
3. Zdroje údajov
DataFrame má podporu pre širokú škálu dátových formátov a zdrojov, na ktoré sa pozrieme neskôr v tomto blogu Pyspark Dataframe Tutorial. Môžu prijímať údaje z rôznych zdrojov.
4. Podpora pre viac jazykov
Má podporu API pre rôzne jazyky ako Python, R, Scala, Java,čo uľahčuje používanie ľuďmi s rozdielnym programovacím zázemím.
Prihláste sa na odber nášho kanála na YouTube a získajte nové aktualizácie ..!
Vlastnosti dátových rámcov
- Dátové rámce sú Distribuované v prírode, vďaka čomu je odolný voči chybám a vysoko dostupnej dátovej štruktúre.
- Lenivé hodnotenie je stratégia hodnotenia, ktorá drží hodnotenie výrazu, kým nie je potrebná jeho hodnota. Vyhýba sa opakovanému hodnoteniu. Lenivé vyhodnotenie v aplikácii Spark znamená, že vykonávanie sa nezačne, kým sa nespustí akcia. V Sparku prichádza obraz lenivého vyhodnotenia, keď dôjde k Sparkovým transformáciám.
- Dátové rámce sú Nezmeniteľné v prírode. Pod nemenným mám na mysli, že ide o objekt, ktorého stav nie je možné upraviť po jeho vytvorení.Môžeme sa však transformovaťjehohodnoty uplatnenímurčitýtransformácia, podobne ako v RDD.
Zdroje dátového rámca PySpark
Dátové rámce v Pysparku je možné vytvoriť niekoľkými spôsobmi:
Dáta je možné načítať pomocou a CSV, JSON, XML alebo pilník na parkety. Môže byť tiež vytvorený pomocou existujúceho RDD a prostredníctvom akejkoľvek inej databázy, napríklad Úľ alebo Cassandra tiež. Môže tiež prijímať údaje z HDFS alebo z lokálneho súborového systému.
Vytvorenie dátového rámca
Poďme ďalej s týmto blogom Výukový program PySpark Dataframe a pochopme, ako vytvoriť Dataframes.
Vytvoríme inštancie zamestnancov a oddelení.
z importu pyspark.sql * Zamestnanec = Riadok ('meno', 'priezvisko', 'email', 'plat') zamestnanec1 = Zamestnanec ('Basher', 'armbrust', 'bash@edureka.co', 100000) zamestnanec2 = Zamestnanec („Daniel“, „meng“, „daniel@stanford.edu“, 120000) zamestnanec 3 = Zamestnanec („Muriel“, žiadny, „muriel@waterloo.edu“, 140000) zamestnanec4 = Zamestnanec („Rachel“, „wendell“ ',' rach_3@edureka.co ', 160000) employee5 = Employee (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Employee [0]) print (employee3) department1 = Row (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', name =' DEV ')
Ďalej vytvoríme inštanciu DepartmentWithEmployees zo zamestnancov a oddelení
departmentWithEmployees1 = Riadok (oddelenie = oddelenie1, zamestnanci = [zamestnanec1, zamestnanec2, zamestnanec5]) departmentWithEmployees2 = riadok (oddelenie = oddelenie2, zamestnanci = [zamestnanec3, zamestnanec4]) departmentWithEmployees3 = riadok (oddelenie = oddelenie3, zamestnanci = [zamestnanec1, zamestnanec4, zamestnanec3) ]) departmentWithEmployees4 = Riadok (oddelenie = oddelenie4, zamestnanci = [zamestnanec2, zamestnanec3])
Vytvorme náš údajový rámec zo zoznamu riadkov
departmentsWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentsWithEmployees_Seq) display (dframe) dframe.show ()
Pyspark Dataframes Príklad 1: Dataset FIFA World Cup
Tu sme vzali súbor údajov o hráčoch z majstrovstiev sveta FIFA. Načítame tieto údaje vo formáte CSVdo adátový rámec a potom sa dozvieme o rôznych transformáciách a akciách, ktoré je možné v tomto dátovom rámci vykonať.
Čítanie údajov zo súboru CSV
Načítajme údaje zo súboru CSV. Tu použijeme spark.read.csv metóda na načítanie údajov do dátového rámca fifa_df. Skutočná metóda je spark.read.format [csv / json] .
fifa_df = spark.read.csv ('cesta k súboru / fifa_players.csv', inferSchema = True, hlavička = True) fifa_df.show ()
Schéma dátového rámca
Ak sa chcete pozrieť na schému, tj. štruktúru dátového rámca, použijeme printSchema metóda. Získate tak rôzne stĺpce v našom údajovom rámci spolu s typom údajov a podmienkami s možnou hodnotou null pre tento konkrétny stĺpec.
fifa_df.printSchema ()
Názvy a počet stĺpcov (riadky a stĺpec)
Ak sa chceme pozrieť na mená a počet riadkov a stĺpcov konkrétneho údajového rámca, použijeme nasledujúce metódy.
fifa_df.columns // Názvy stĺpcov fifa_df.count () // Len počet riadkov (fifa_df.columns) // Počet stĺpcov
37784 8
Opis konkrétneho stĺpca
Ak sa chceme pozrieť na zhrnutie ktoréhokoľvek konkrétneho stĺpca údajového rámca, použijeme znak opisuje metóda. Táto metóda nám poskytuje štatistické zhrnutie daného stĺpca, ak nie je uvedené, poskytuje štatistické zhrnutie dátového rámca.
ako obrátiť reťazce v pythone -
fifa_df.describe ('Meno trénera'). show () fifa_df.describe ('Pozícia'). show ()
Výber viacerých stĺpcov
Ak chceme z dátového rámca vybrať konkrétne stĺpce, použijeme znak vyberte metóda.
fifa_df.select („Meno hráča“, „Meno trénera“). show ()
Výber samostatných viacerých stĺpcov
fifa_df.select („Meno hráča“, „Meno trénera“). different (). show ()
Filtrovanie údajov
Na filtrovanie údajov používame podľa zadanej podmienky znak filter príkaz. Tu filtrujeme náš údajový rámec na základe podmienky, že ID zhody sa musí rovnať 1096 a potom vypočítame, koľko záznamov / riadkov je vo filtrovanom výstupe.
fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // na získanie počtu
Filtrovanie údajov (viac parametrov)
Naše údaje môžeme filtrovať na základe viacerých podmienok (AND alebo OR)
fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40')). show ()
Triedenie údajov (OrderBy)
Na triedenie údajov používame Zoradiť podľa metóda. V predvolenom nastavení je zoradený vzostupne, ale môžeme ho zmeniť aj v zostupnom poradí.
fifa_df.orderBy (fifa_df.MatchID) .show ()
PySpark Dataframes Príklad 2: Dataset Superheros
Načítavajú sa údaje
Tu načítame údaje rovnakým spôsobom ako predtým.
Superhero_df = spark.read.csv ('cesta k súboru / superheros.csv', inferSchema = True, hlavička = True) Superhero_df.show (10)
Filtrovanie údajov
Superhero_df.filter (Superhero_df.Gender == 'Muž'). Count () // Počet hrdinov Heros Superhero_df.filter (Superhero_df.Gender == 'Žena'). Count () // Počet hrdinov Heros
Zoskupenie údajov
GroupBy sa používa na zoskupenie dátového rámca na základe zadaného stĺpca. Tu zoskupujeme údajový rámec na základe stĺpca Race a potom s počítať nájdeme počet konkrétnych rás.
Race_df = Superhrdina_df.groupby ('Race') .count () .show ()
Vykonávanie dotazov SQL
Môžeme tiež odovzdávať dotazy SQL priamo do ľubovoľného údajového rámca, na to musíme vytvoriť tabuľku z údajového rámca pomocou registerTempTable metódou a potom použite sqlContext.sql () na odovzdanie dotazov SQL.
Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Show ()
sqlContext.sql ('vyberte odlišné (Eye_color) od superhero_table'). show ()
sqlContext.sql ('vyberte odlišné (Eye_color) od superhero_table'). count ()
2. 3
sqlContext.sql ('vyberte max (Weight) from superhero_table'). show ()
A s týmto sa dostávame na koniec tohto tutoriálu PySpark Dataframe Tutorial.
Takže toto je, chlapci!
Dúfam, že ste dostali predstavu o tom, čo je PySpark Dataframe, prečo sa používa v priemysle a aké sú jeho vlastnosti v tomto výučbovom blogu PySpark Dataframe. Gratulujeme, už nie ste nováčikom v Dataframes. Ak sa chcete dozvedieť viac o PySpark a porozumieť rôznym prípadom použitia v priemysle, pozrite si našu Iskrte s Pythonom a Výukový program PySpark Blog.