PySpark Dataframe Tutorial - PySpark Programming na may Dataframes



Sa PySpark Dataframe tutorial blog na ito, malalaman mo ang tungkol sa mga pagbabago at pagkilos sa Apache Spark na may maraming mga halimbawa.

Ang Dataframes ay isang buzzword sa Industriya sa kasalukuyan. Ang mga tao ay may posibilidad na gamitin ito sa mga tanyag na wika na ginagamit para sa Pagsusuri ng Data tulad ng Python, Scala at R.Dagdag pa, na may maliwanag na pangangailangan para sa paghawak ng kumplikadong pagtatasa at munging mga gawain para sa Big Data, Python para sa Spark o ay naging isa sa pinakahinahabol na kasanayan sa industriya ngayon.Kaya, bakit ito ginagamit ng bawat isa nang labis? Unawain natin ito sa ating Tutorial sa Pyfrp Dataframe Blog. Sa blog na ito ay sasaklawin ko ang mga sumusunod na paksa:





PySpark Dataframe Tutorial: Ano ang mga Dataframes?

Ang mga Dataframe sa pangkalahatan ay tumutukoy sa isang istraktura ng data, na likas na tabular. Kinakatawan nito ang Rows, na ang bawat isa ay binubuo ng isang bilang ng mga obserbasyon. Ang mga hilera ay maaaring magkaroon ng iba't ibang mga format ng data ( Magkakaiba ), samantalang ang isang haligi ay maaaring magkaroon ng data ng parehong uri ng data ( Homogenous ). Karaniwang naglalaman ang mga frame ng data ng ilang metadata bilang karagdagan sa data halimbawa, mga pangalan ng haligi at hilera.

Dataframe-Pyspark-Dataframe-Tutorial



Maaari naming sabihin na ang Dataframes ay wala, ngunit 2-Dimensional na Istraktura ng Data, katulad ng isang talahanayan ng SQL o isang spreadsheet. Ngayon ay magpatuloy tayo sa PySpark Dataframe Tutorial na ito at maunawaan kung bakit eksaktong kailangan natin ang Pyspark Dataframe?

Bakit kailangan natin ng mga Dataframes?

1. Naproseso na Balangkas at Semi-Struktadong Data



Mga Dataframeay idinisenyo upang maprosesosa malaki koleksyon ng mga nakabalangkas pati na rin ang Semi-istrukturang data . Ang mga pagmamasid sa Spark DataFrame ay isinaayos sa ilalim ng pinangalanang mga haligi, na tumutulong sa Apache Spark na maunawaan ang iskema ng isang DataFrame. Tinutulungan nito ang Spark na ma-optimize ang plano sa pagpapatupad sa mga query na ito. Kakayanin din nito Mga petabyte ng data

2.S paglilisensya at Dicing

Data frame AKadalasang sinusuportahan ng mga API ang mga detalyadong pamamaraan para sa paghiwa-at-dicing ang data Kasama ditooperasyonns tulad ng 'pagpili' na mga hilera, haligi, at cell ayon sa pangalan o sa bilang, pag-filter ng mga hilera, atbp. Ang data ng istatistika ay karaniwang napakagulo at naglalaman ng maraming nawawala at maling halaga at mga paglabag sa saklaw. Kaya't ang isang kritikal na mahalagang tampok ng mga frame ng data ay ang malinaw na pamamahala ng nawawalang data.

3. Mga Pinagmulan ng Data

Ang DataFrame ay may suporta para sa isang malawak na hanay ng format ng data at mga mapagkukunan, titingnan namin ito sa paglaon sa blog ng Tutorial na Pyspark Dataframe na ito. Maaari silang kumuha ng data mula sa iba't ibang mga mapagkukunan.

4.Support para sa Maramihang Mga Wika

Mayroon itong suporta sa API para sa iba't ibang mga wika tulad ng Python, R, Scala, Java,na ginagawang mas madali upang magamit ng mga taong mayroong iba't ibang mga background sa pag-program.

Mag-subscribe sa aming youtube channel upang makakuha ng mga bagong update ..!

Mga Tampok ng Mga Dataframe

  • Ang mga dataframe ay Ipinamahagi sa Kalikasan, na ginagawang Fault Tolerant at Lubhang Magagamit na Istraktura ng Data.
  • Tamad na pagsusuri ay isang diskarte sa pagsusuri kung saan humahawak sa pagsusuri ng isang expression hanggang sa kailangan ang halaga nito. Iniiwasan nito ang paulit-ulit na pagsusuri. Ang tamad na pagsusuri sa Spark ay nangangahulugang ang pagpapatupad ay hindi magsisimula hanggang sa ma-trigger ang isang aksyon. Sa Spark, ang larawan ng tinatamad na pagsusuri ay dumating kapag nangyari ang mga Spark transformation.
  • Ang mga dataframe ay Hindi nababago sa kalikasan. Sa pamamagitan ng hindi nababago ibig sabihin ko na ito ay isang bagay na ang estado hindi mabago matapos itong likhain.Ngunit maaari nating ibahin ang anyonitohalaga sa pamamagitan ng paglalapatisang tiyakpagbabago, tulad ng sa RDDs.

Mga Pinagmulan ng PySpark Dataframe

Ang mga dataframe sa Pyspark ay maaaring malikha sa maraming paraan:

Maaaring mai-load ang data sa pamamagitan ng a CSV, JSON, XML o isang file ng Parquet. Maaari rin itong likhain gamit ang isang mayroon nang RDD at sa pamamagitan ng anumang iba pang database, tulad ng Pugad o Cassandra din. Maaari rin itong kumuha ng data mula sa HDFS o sa lokal na file system.

Paglikha ng Dataframe

Sumulong tayo sa PySpark Dataframe Tutorial blog na ito at unawain kung paano lumikha ng mga Dataframes.

Lilikha kami ng mga pagkakataon ng empleyado at Kagawaran.

mula sa pyspark.sql import * empleyado = Hilera ('firstName', 'lastName', 'email', 'suweldo') empleyado1 = empleyado ('Basher', 'armbrust', 'bash@edureka.co', 100000) empleyado2 = Empleyado ('Daniel', 'meng', 'daniel@stanford.edu', 120000) empleyado3 = empleyado ('Muriel', Wala, 'muriel@waterloo.edu', 140000) empleyado4 = empleyado ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) empleyado5 = empleyado (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Empleyado [0]) print (empleyado3) department1 = Row (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', pangalan =' DEV ')

Susunod, lilikha kami ng isang halimbawa ng DepartmentWithEmployees mula sa empleyado at Kagawaran

departmentWithEmployees1 = Row (department = department1, mga empleyado = [empleyado1, empleyado2, empleyado5]) departmentWithEmployees2 = Row (department = department2, mga empleyado = [empleyado3, empleyado4]) departmentWithEmployees3 = Row (department = department3, mga empleyado = [employee1, employee4, employee3 ]) departmentWithEmployees4 = Row (department = department4, empleyado = [empleyado2, empleyado3])

Lumikha tayo ng aming Dataframe mula sa listahan ng mga Rows

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

Mga Datafram ng Pyspark Halimbawa 1: FIFA World Cup Dataset

Narito na kinuha namin ang FIFA World Cup Player Dataset. Ilo-load namin ang data na ito na nasa format na CSVsa isangdataframe at pagkatapos ay matututunan natin ang tungkol sa iba't ibang mga pagbabago at pagkilos na maaaring gumanap sa dataframe na ito.

Pagbasa ng Data mula sa CSV file

I-load natin ang data mula sa isang CSV file. Narito gagamitin namin ang spark.read.csv paraan upang mai-load ang data sa isang dataframe fifa_df. Ang tunay na pamamaraan ay spark.read.format [csv / json] .

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

Schema ng Dataframe

Upang tingnan ang ibig sabihin ng schema. ang istraktura ng dataframe, gagamitin namin ang printSchema paraan Bibigyan kami nito ng iba't ibang mga haligi sa aming dataframe kasama ang uri ng data at ang mga nullable na kundisyon para sa partikular na haligi na iyon.

fifa_df.printSchema ()

Mga Pangalan at Bilang ng Hanay (Mga Hilera at Hanay)

Kung nais naming tingnan ang mga pangalan at bilang ng bilang ng mga Rows at Column ng isang partikular na Dataframe, ginagamit namin ang mga sumusunod na pamamaraan.

fifa_df.columns // Column Names fifa_df.count () // Row Count len ​​(fifa_df.columns) // Column Count

37784 8

Paglalarawan ng isang Partikular na Haligi

Kung nais naming tingnan ang buod ng anumang partikular na haligi ng isang Dataframe, ginagamit namin ang naglalarawan paraan Binibigyan kami ng pamamaraang ito ng buod ng istatistika ng ibinigay na haligi, kung hindi tinukoy, nagbibigay ito ng buod ng istatistika ng dataframe.

kung paano gawin ang mga pugad na mesa sa html
fifa_df.describe ('Coach Name'). show () fifa_df.describe ('Position'). show ()

Pagpili ng Maramihang mga Haligi

Kung nais naming pumili ng mga partikular na haligi mula sa dataframe, ginagamit namin ang pumili ka paraan

fifa_df.select ('Player Name', 'Coach Name'). ipakita ()

Pagpili ng Natatanging Maramihang Mga Haligi

fifa_df.select ('Player Name', 'Coach Name'). magkakaibang (). ipakita ()

Pagsala ng Data

Upang ma-filter ang data, ayon sa tinukoy na kundisyon, ginagamit namin ang salain utos Dito namin sinasala ang aming dataframe batay sa kundisyon na ang Match ID ay dapat na katumbas ng 1096 at pagkatapos ay kinakalkula namin kung gaano karaming mga record / row ang nandoon sa na-filter na output.

fifa_df.filter (fifa_df.MatchID == '1096'). ipakita () fifa_df.filter (fifa_df.MatchID == '1096'). bilangin () // upang makuha ang bilang

Pagsala ng Data (Maramihang Mga Parameter)

Maaari nating salain ang aming data batay sa maraming mga kundisyon (AT o O)

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

Pag-uuri ng Data (OrderBy)

Upang pag-uri-uriin ang data na ginagamit namin ang Iniutos ni paraan Sa pamamagitan ng Default, nag-uuri ito sa pataas na pagkakasunud-sunod, ngunit maaari natin itong palitan sa pababang pagkakasunud-sunod din.

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

Halimbawa ng Mga Pyramos Dataframes 2: Superheros Dataset

Nilo-load ang data

Dito mai-load namin ang data sa parehong paraan tulad ng ginawa namin kanina.

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

Pagsala ng Data

Superhero_df.filter (Superhero_df.Gender == 'Lalaki'). Count () // Male Heros Count Superhero_df.filter (Superhero_df.Gender == 'Babae'). Count () // Babae Heros Count

Pagpapangkat ng Data

GroupBy ay ginagamit upang mapangkat ang dataframe batay sa tinukoy na haligi. Dito, pinapangkat namin ang dataframe batay sa haligi ng lahi at pagkatapos ay sa bilangin pag-andar, mahahanap natin ang bilang ng partikular na lahi.

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

Nagsasagawa ng Mga SQL Query

Maaari din naming ipasa ang mga query ng SQL nang direkta sa anumang dataframe, para doon kailangan naming lumikha ng isang talahanayan mula sa dataframe gamit ang magrehistroTempTable pamamaraan at pagkatapos ay gamitin ang sqlContext.sql () upang maipasa ang mga query sa SQL.

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

sqlContext.sql ('pumili ng natatanging (Eye_color) mula sa superhero_table'). ipakita ()

sqlContext.sql ('pumili ng natatanging (Eye_color) mula sa superhero_table'). count ()

2. 3

sqlContext.sql ('select max (Timbang) mula sa superhero_table'). ipakita ()

At sa pamamagitan nito, natapos namin ang Tutorial na PySpark Dataframe na ito.

Kaya Ito na, Guys!

Inaasahan kong nakakuha kayo ng ideya kung ano ang PySpark Dataframe, bakit ito ginagamit sa industriya at mga tampok nito sa PySpark Dataframe Tutorial Blog na ito. Binabati kita, hindi ka na isang Newbie sa Dataframes. Kung nais mong matuto nang higit pa tungkol sa PySpark at Maunawaan ang iba't ibang Mga Kaso ng Paggamit ng Industriya, tingnan ang aming Spark kay Python at Tutorial sa PySpark Blog.