Výukový program PySpark Dataframe - Programovanie PySpark s Dataframes



V tomto výučbovom blogu PySpark Dataframe sa na niekoľkých príkladoch dozviete o transformáciách a akciách v Apache Spark.

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:





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.

Dataframe-Pyspark-Dataframe-Tutorial



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.