Výukový program PySpark Dataframe - programování PySpark s Dataframes



V tomto výukovém blogu PySpark Dataframe se na několika příkladech dozvíte o transformacích a akcích v Apache Spark.

Dataframes je v dnešním průmyslovém odvětví v Buzzword. Lidé jej obvykle používají v populárních jazycích používaných pro analýzu dat, jako jsou Python, Scala a R.Navíc se zjevnou potřebou zvládnout složité analytické a mungingové úlohy pro Big Data, Python pro Spark nebo se dnes stala jednou z nejvyhledávanějších dovedností v tomto odvětví.Proč to tedy všichni tolik používají? Pochopme to s naším Výukový program PySpark Dataframe blog. V tomto blogu se budu zabývat následujícími tématy:





Výukový program PySpark Dataframe: Co jsou datové rámce?

Datové rámce obecně odkazují na datovou strukturu, která má tabulkovou povahu. Představuje řádky, z nichž každý se skládá z řady pozorování. Řádky mohou mít různé datové formáty ( Heterogenní ), zatímco sloupec může obsahovat data stejného datového typu ( Homogenní ). Datové rámce obvykle obsahují kromě dat také některá metadata, například názvy sloupců a řádků.

Dataframe-Pyspark-Dataframe-Tutorial



Můžeme říci, že Dataframes nejsou nic jiného než 2-dimenzionální datová struktura, podobná tabulce SQL nebo tabulce. Nyní pojďme kupředu s tímto výukovým programem PySpark Dataframe a pochopme, proč přesně potřebujeme Pyspark Dataframe?

Proč potřebujeme Dataframes?

1. Zpracování strukturovaných a polostrukturovaných dat



Datové rámcejsou určeny ke zpracovánína velký sběr strukturovaných i polostrukturovaných dat . Pozorování ve Spark DataFrame jsou organizována pod pojmenovanými sloupci, což Apache Spark pomáhá porozumět schématu DataFrame. To pomáhá Sparku optimalizovat plán provádění na tyto dotazy. Zvládne to také Petabajty dat.

2.S licencování a kostkování

Datový rámec API obvykle podporuje komplikované metody pro krájení a krájení na kostičky data. To zahrnujeúkonjako je „výběr“ řádků, sloupců a buněk podle názvu nebo čísla, filtrování řádků atd. Statistická data jsou obvykle velmi chaotická a obsahují spoustu chybějících a nesprávných hodnot a porušení rozsahu. Kriticky důležitou vlastností datových rámců je tedy explicitní správa chybějících dat.

3. Zdroje dat

DataFrame má podporu pro širokou škálu datových formátů a zdrojů. Podíváme se na to později v tomto blogu Pyspark Dataframe Tutorial. Mohou přijímat data z různých zdrojů.

4. Podpora pro více jazyků

Má podporu API pro různé jazyky, jako je Python, R, Scala, Java,což usnadňuje používání lidmi s různým programovacím zázemím.

Přihlaste se k odběru našeho kanálu na YouTube a získejte nové aktualizace ..!

Vlastnosti datových rámců

  • Datové rámce jsou Distribuováno v přírodě, díky čemuž je odolná vůči chybám a vysoce dostupná datová struktura.
  • Líné hodnocení je strategie hodnocení, která udržuje hodnocení výrazu, dokud není potřeba jeho hodnota. Vyhýbá se opakovanému hodnocení. Líné vyhodnocení ve Sparku znamená, že spuštění se nespustí, dokud není spuštěna akce. Ve Sparku přichází obraz líného vyhodnocení, když dojde ke Sparkovým transformacím.
  • Datové rámce jsou Neměnný v přírodě. Tím neměnným mám na mysli, že jde o objekt, jehož stav nelze upravit po jeho vytvoření.Ale můžeme se transformovatsvéhodnoty aplikacíurčitétransformace, jako v RDD.

Zdroje datového rámce PySpark

Datové rámce v Pysparku lze vytvořit několika způsoby:

Data lze načíst pomocí a CSV, JSON, XML nebo soubor na parkety. Lze jej také vytvořit pomocí existujícího RDD a prostřednictvím jakékoli jiné databáze, například Úl nebo Cassandra také. Může také přijímat data z HDFS nebo místního systému souborů.

Vytvoření datového rámce

Pojďme se přesunout dál s tímto blogem PySpark Dataframe Tutorial a pochopíme, jak vytvořit Dataframes.

Vytvoříme instance zaměstnanců a oddělení.

z pyspark.sql import * Zaměstnanec = Řádek ('křestní jméno', 'příjmení', 'e-mail', 'plat') zaměstnanec1 = Zaměstnanec ('Basher', 'armbrust', 'bash@edureka.co', 100000) zaměstnanec2 = Zaměstnanec ('Daniel', 'meng', 'daniel@stanford.edu', 120000) zaměstnanec 3 = Zaměstnanec ('Muriel', Žádný, 'muriel@waterloo.edu', 140000) zaměstnanec4 = Zaměstnanec ('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 ')

Dále vytvoříme instanci DepartmentWithEmployees ze zaměstnanců a oddělení

departmentWithEmployees1 = řádek (oddělení = oddělení1, zaměstnanci = [zaměstnanec1, zaměstnanec2, zaměstnanec5]) departmentWithEmployees2 = řádek (oddělení = oddělení2, zaměstnanci = [zaměstnanec3, zaměstnanec4]) departmentWithEmployees3 = řádek (oddělení = oddělení3, zaměstnanci = [zaměstnanec1, zaměstnanec4, zaměstnanec3) ]) departmentWithEmployees4 = řádek (oddělení = oddělení4, zaměstnanci = [zaměstnanec2, zaměstnanec3])

Vytvořme náš datový rámec ze seznamu řádků

departmentsWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentsWithEmployees_Seq) display (dframe) dframe.show ()

Pyspark Dataframes Příklad 1: Datová sada FIFA World Cup

Zde jsme vzali datovou sadu hráčů na mistrovství světa FIFA. Načteme tato data ve formátu CSVdodatový rámec a poté se dozvíme o různých transformacích a akcích, které lze v tomto datovém rámci provést.

Čtení dat ze souboru CSV

Načtěte data ze souboru CSV. Tady použijeme spark.read.csv metoda načtení dat do datového rámce fifa_df. Skutečná metoda je spark.read.format [csv / json] .

fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Schéma datového rámce

Chcete-li se podívat na schéma, tj. strukturu datového rámce, použijeme printSchema metoda. To nám dá různé sloupce v našem datovém rámci spolu s datovým typem a podmínkami s možnou hodnotou Null pro tento konkrétní sloupec.

fifa_df.printSchema ()

Názvy a počet sloupců (řádky a sloupec)

Když se chceme podívat na názvy a počet řádků a sloupců konkrétního datového rámce, použijeme následující metody.

fifa_df.columns // Názvy sloupců fifa_df.count () // Počet řádků jen (fifa_df.columns) // Počet sloupců

37784 8

Popis konkrétního sloupu

Pokud se chceme podívat na souhrn kteréhokoli konkrétního sloupce datového rámce, použijeme popisuje metoda. Tato metoda nám poskytuje statistické shrnutí daného sloupce, pokud není uvedeno, poskytuje statistické shrnutí datového rámce.

keyerror: 'a'
fifa_df.describe ('Jméno trenéra'). show () fifa_df.describe ('Pozice'). show ()

Výběr více sloupců

Pokud chceme vybrat konkrétní sloupce z datového rámce, použijeme vybrat metoda.

fifa_df.select ('Jméno hráče', 'Jméno trenéra'). show ()

Výběr samostatných více sloupců

fifa_df.select ('Jméno hráče', 'Jméno trenéra'). different (). show ()

Filtrování dat

Abychom mohli data filtrovat, podle zadané podmínky používáme filtr příkaz. Zde filtrujeme náš datový rámec na základě podmínky, že ID shody se musí rovnat 1096 a poté vypočítáváme, kolik záznamů / řádků je ve filtrovaném výstupu.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // pro získání počtu

Filtrování dat (více parametrů)

Můžeme filtrovat naše data na základě více podmínek (AND nebo OR)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()

Řazení dat (OrderBy)

Pro třídění dat používáme Seřadit podle metoda. Ve výchozím nastavení se seřadí vzestupně, ale můžeme jej také změnit na sestupné pořadí.

fifa_df.orderBy (fifa_df.MatchID) .show ()

PySpark Dataframes Příklad 2: Datová sada Superheros

Načítání dat

Zde načteme data stejným způsobem jako dříve.

Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Filtrování dat

Superhero_df.filter (Superhero_df.Gender == 'Muž'). Count () // Počet herosů pro muže Superhero_df.filter (Superhero_df.Gender == 'Žena'). Count () // Počet herosů

Seskupení dat

Skupina vytvořená slouží k seskupení datového rámce na základě zadaného sloupce. Zde seskupujeme datový rámec na základě sloupce Race a poté s počet funkce, můžeme najít počet konkrétních ras.

Race_df = Superhero_df.groupby ('Race') .count () .show ()

Provádění dotazů SQL

Můžeme také předat dotazy SQL přímo do libovolného datového rámce, proto musíme z datového rámce vytvořit tabulku pomocí registerTempTable metoda a poté použijte sqlContext.sql () předat dotazy SQL.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Show ()

sqlContext.sql ('vybrat odlišný (Eye_color) od superhero_table'). show ()

sqlContext.sql ('vybrat odlišný (Eye_color) od superhero_table'). count ()

2. 3

sqlContext.sql ('select max (Weight) from superhero_table'). show ()

A s tímto se dostáváme na konec tohoto PySpark Dataframe Tutorial.

Takže tohle je, lidi!

Doufám, že jste získali představu o tom, co je PySpark Dataframe, proč se používá v tomto odvětví a jeho funkcích v tomto výukovém blogu PySpark Dataframe. Gratulujeme, již nejste nováčkem v Dataframes. Pokud se chcete dozvědět více o PySparku a porozumět různým případům průmyslového využití, podívejte se na naše Spark s Pythonem a Výukový program PySpark Blog.