Tutorial sa PySpark - Alamin ang Apache Spark Gamit ang Python



Sa blog na ito sa PySpark Tutorial, malalaman mo ang tungkol sa PSpark API na ginagamit upang gumana sa Apache Spark gamit ang Python Programming Language.

Sa isang mundo kung saan ang data ay nabubuo sa isang nakakabahalang rate, ang tamang pagsusuri ng data na iyon sa tamang oras ay lubhang kapaki-pakinabang. Ang isa sa pinaka kamangha-manghang balangkas upang hawakan ang malaking data sa real-time at isagawa ang pagtatasa ay Apache Spark.Magkasama, o PySpark ay isa sa pinakahinahabol na mga kurso sa sertipikasyon, na nagbibigay sa Scala para sa Spark ng isang run para sa pera nito. Kaya sa ito Tutorial sa PySpark blog, tatalakayin ko ang mga sumusunod na paksa:





Tutorial sa PySpark: Ano ang PySpark?

Ang Apache Spark ay isang mabilis na framework ng computing computing na ginagamit para sa pagproseso, pag-query at pag-aralan ang Malaking data. Dahil batay sa pagkalkula ng In-memory, mayroon itong kalamangan kaysa sa maraming iba pang malalaking Mga Framework ng data.

Mga Tampok ng PySpark - Tutorial sa PySpark - Edureka



Orihinal na nakasulat sa Scala Programming Language, ang bukas na pamayanan ng komunidad ay bumuo ng isang kamangha-manghang tool upang suportahan ang Python para sa Apache Spark. Tinutulungan ng PySpark na maiugnay ang mga siyentipiko ng data sa mga RDD sa Apache Spark at Python sa pamamagitan ng silid-aklatan nito Py4j. Maraming mga tampok na ginagawang mas mahusay na balangkas ang PySpark kaysa sa iba:

  • Bilis: Ito ay 100x mas mabilis kaysa sa tradisyunal na malakihang mga balangkas ng pagpoproseso ng data
  • Napakahusay na Caching: Nagbibigay ang simpleng layer ng programa ng malakas na mga kakayahan sa pag-cache at disk pagtitiyaga
  • Pag-deploy: Maaaring i-deploy sa pamamagitan ng Mesos, Hadoop sa pamamagitan ng Yarn, o sariling manager ng cluster ng Spark
  • Totoong oras: Pagkalkula ng real-time at mababang latency dahil sa pagkalkula ng memorya
  • Polyglot: Sinusuportahan ang programa sa Scala, Java, Python at R

Sumulong tayo sa aming PySpark Tutorial Blog at tingnan kung saan ginagamit ang Spark sa industriya.

PySpark sa industriya

Ang bawat industriya ay umiikot sa Big Data at kung saan mayroong Malaking Data mayroong kasangkot na Pagsusuri. Kaya't tingnan natin ang iba't ibang mga industriya kung saan ginagamit ang Apache Spark.



ano ang isang variable na halimbawa sa java

Kalahati ay isa sa pinakamalaking industriya na lumalaki patungo sa online streaming. Netflix gumagamit ng Apache Spark para sa pagproseso ng real-time stream upang magbigay ng isinapersonal na mga rekomendasyong online sa mga customer nito. Pinoproseso ito 450 bilyon mga kaganapan bawat araw na dumadaloy sa mga application ng panig ng server.

Pananalapi ay isa pang sektor kung saan ang pagproseso ng Real-Time ng Apache Spark ay may mahalagang papel. Gumagamit ang mga bangko ng Spark upang ma-access at suriin ang mga profile sa social media, upang makakuha ng mga pananaw na makakatulong sa kanila na gumawa ng tamang mga desisyon sa negosyo pagtatasa ng panganib sa kredito , naka-target na mga ad at paghihiwalay ng customer. Customer Churn nabawasan din gamit ang Spark. Pagtuklas ng Pandaraya ay isa sa mga pinakalawak na ginagamit na lugar ng Pag-aaral ng Machine kung saan kasangkot ang Spark.

Pangangalaga sa kalusugan gumagamit ang mga provider ng Apache Spark sa Pag-aralan ang mga tala ng pasyente kasama ang nakaraang klinikal na data upang makilala kung aling mga pasyente ang malamang na makaharap sa mga isyu sa kalusugan pagkatapos na mapalabas mula sa klinika. Apache Spark ay ginagamit sa Pagsunud-sunod ng Genomic upang mabawasan ang oras na kinakailangan upang maproseso ang data ng genome.

Ang tingi at E-commerce ay isang industriya kung saan hindi maiisip ng isang tao na tumatakbo ito nang walang paggamit ng Pagsusuri at Target na Advertising. Isa sa pinakamalaking platform ng E-commerce ngayon Alibaba nagpapatakbo ng ilan sa pinakamalaking Trabaho ng Spark sa mundo upang masuri ang mga petabyte ng data. Gumaganap ang Alibaba tampok na pagkuha sa data ng imahe. eBay gumagamit ng Apache Spark upang ibigay Mga Na-target na Alok , pagbutihin ang karanasan ng customer at i-optimize ang pangkalahatang pagganap.

Paglalakbay Gumagamit din ang mga industriya ng Apache Spark. TripAdvisor , isang nangungunang website sa paglalakbay na tumutulong sa mga gumagamit na magplano ng isang perpektong paglalakbay ay gumagamit ng Apache Spark upang mapabilis ito isinapersonal na mga rekomendasyon ng customer Gumagamit ang .TripScore spark ng apache spark upang magbigay ng payo sa milyon-milyong mga manlalakbay ng paghahambing ng daan-daang mga website upang mahanap ang pinakamahusay na mga presyo ng hotel para sa mga customer nito.

Ang isang mahalagang aspeto ng PySpark Tutorial na ito ay upang maunawaan kung bakit kailangan nating pumunta para sa Python? Bakit hindi Java, Scala o R?

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


Bakit Pumunta para sa Python?

Madaling matutunan: Para sa mga programmer na Python ay medyo madaling malaman dahil sa syntax at karaniwang mga aklatan. Bukod dito, ito ay isang pabagu-bagong naka-type na wika, na nangangahulugang ang mga RDD ay maaaring magkaroon ng mga bagay ng maraming uri.

Isang malawak na hanay ng Mga Aklatan: Ang Scala ay walang sapat na mga tool sa agham ng data at aklatan tulad ng Python para sa pag-aaral ng makina at pagproseso ng natural na wika. Bukod dito, wala ng magandang visualization at mga pagbabago sa lokal na data ang Scala.

Napakalaking Suporta ng Komunidad: Ang Python ay may isang pandaigdigang pamayanan na may milyon-milyong mga developer na nakikipag-ugnay sa online at offline sa libu-libong mga virtual at pisikal na lokasyon.

Ang isa sa pinakamahalagang paksa sa Tutorial ng PySpark na ito ay ang paggamit ng mga RDD. Unawain natin kung ano ang mga RDD

Spark RDDs

Pagdating sa umuulit na ipinamamahaging computing, ibig sabihin, ang pagproseso ng data sa maraming mga trabaho sa mga pagkalkula, kailangan naming muling gamitin o magbahagi ng data sa maraming mga trabaho. Ang mga naunang balangkas tulad ng Hadoop ay may mga problema habang nakikipag-usap sa maraming mga operasyon / trabaho tulad ng

  • Pag-iimbak ng Data sa Intermediate Storage tulad ng HDFS
  • Maramihang mga trabahong I / O ang nagpapabagal sa mga pagkalkula
  • Ang mga pagkopya at serialization na kung saan ay ginagawang mas mabagal ang proseso

Sinusubukan ng mga RDD na malutas ang lahat ng mga problema sa pamamagitan ng pagpapagana ng mapagparaya sa pagkakasala na ipinamamahagi ng mga computation na In-memory. Ang RDD ay maikli para sa Nababanat na Ipinamahaging Mga Dataset. Ang RDD ay isang ipinamahaging abstraction ng memorya na hinahayaan ang mga programmer na magsagawa ng mga in-memory na pagkalkula sa mga malalaking kumpol sa isang mapagparaya na paraan. Sila ang read-only na koleksyon ng mga bagay nahahati sa isang hanay ng mga machine na maaaring muling itayo kung ang isang pagkahati ay nawala. Mayroong maraming mga pagpapatakbo na isinagawa sa RDDs:

  • Mga Pagbabago: Lumilikha ang mga pagbabago ng isang bagong dataset mula sa isang mayroon nang. Tamad na Pagsusuri
  • Mga Pagkilos: Pinipilit lamang ng spark ang mga kalkulasyon para sa pagpapatupad kapag ang mga aksyon ay naipatawag sa mga RDD

Unawain natin ang ilang mga Pagbabago, Pagkilos at Pag-andar

Nagbabasa ng isang file at Ipinapakita ang mga nangungunang n elemento:

rdd = sc.textFile ('file: /// home / edureka / Desktop / Sample') rdd.take (n)

Output:

[u'Deforestation ay nagmumula bilang pangunahing isyu sa kapaligiran at panlipunan na ngayon ay gumawa ng anyo ng higit pa sa isang makapangyarihang demonyo. ', u'Kailangan nating malaman ang tungkol sa mga sanhi, epekto at paraan upang malutas ang mga problemang lumitaw dahil sa pagkalbo ng kagubatan. Nagbigay kami ng maraming mga talata, mahaba at maikling sanaysay tungkol sa pagkalbo ng kagubatan upang matulungan ang iyong mga anak at mga anak na magkaroon ng kamalayan tungkol sa problema pati na rin makilahok sa paligsahan sa pagsulat ng sanaysay sa paaralan o labas ng paaralan. ', u'Maaari kang pumili ng anumang sanaysay ng deforestation na ibinigay sa ibaba ayon sa pamantayan ng klase. ', u'Deforestation ay bumangon bilang pangunahing pandaigdigang problema sa lipunan at kapaligiran.']

Nagko-convert sa maliit at maliit na Paghahati: (Mas mababa at Hatiin)

def Func (mga linya): mga linya = mga linya. mas mababa () mga linya = mga linya. linya () ibalik ang mga linya na rdd1 = rdd.map (Func)

Output:

[[u'deforestation ', u'is', u'arising ', u'as', u'the ', u'main', u'en environmental ', u'and', u'social ', u'issue ', u'which', u'has ', u'now', u'taken ', ...... . . ]

Inaalis ang mga Stopword: (Filter)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'and', 'be', 'been', 'from', 'had' , 'I', 'I'll', 'why', 'with'] rdd2 = rdd1.filter (lambda z: z not in stop_words) rdd2.take (10)

Output:

[u'deforestation ', u'arising', u'main ', u'en environmental', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Kabuuan ng Mga Bilang mula 1 hanggang 500: (Bawasan)

sum_rdd = sc.parallelize (saklaw (1,500)) sum_rdd.reduce (lambda x, y: x + y)

Paglabas:

124750

Pag-aaral ng Machine sa PySpark

Pagpapatuloy ng aming PySpark Tutorial Blog, pag-aralan natin ang ilang Data ng BasketBall at gumawa ng Hula sa hinaharap. Kaya, dito ay gagamitin namin ang Data ng Basketball ng lahat ng mga manlalaro ng NBA mula noon 1980 [taon ng pagpapakilala ng 3 Mga Punto].

Naglo-load ng Data:

df = spark.read.option ('header', 'true') .option ('inferSchema', 'true') .csv ('file: ///home/edureka/Downloads/season_totals.csv')

Mga Haligi ng Pag-print:

print (df.columns)

Output:

['_c0', 'player', 'pos', 'age', 'team_id', 'g', 'gs', 'mp', 'fg', 'fga', 'fg_pct', 'fg3', ' fg3a ',' fg3_pct ',' fg2 ',' fg2a ',' fg2_pct ',' efg_pct ',' ft ',' fta ',' ft_pct ',' orb ',' drb ',' trb ',' ast ' , 'stl', 'blk', 'tov', 'pf', 'pts', 'yr']

Pag-uuri ng Mga Manlalaro (OrderBy) at toPandas:

Narito kami ay naghihiwalay ng mga manlalaro batay sa puntos na nakapuntos sa isang panahon.

df.orderBy ('pts', pataas = Mali) .limit (10) .toPandas () [['yr', 'player', 'age', 'pts', 'fg3']]

Output:

Paggamit ng DSL at matplotlib:

Narito namin pinag-aaralan ang average na bilang ng 3 puntos na pagtatangka para sa bawat panahon sa isang limitasyon sa oras ng 36 min [isang agwat na naaayon sa isang tinatayang buong laro ng NBA na may sapat na pahinga]. Kinukuwenta namin ang sukatang ito gamit ang bilang ng mga 3-point na pagtatangka ng layunin sa patlang (fg3a) at mga minuto na nilalaro (mp) at pagkatapos ay balangkas ang resulta gamit ang matlplotlib .

mula sa pyspark.sql.function import col fga_py = df.groupBy ('yr') .agg ({'mp': 'sum', 'fg3a': 'sum'}) .select (col ('yr'), ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). Alias ​​('fg3a_p36m')) .orderBy ('yr') mula sa matplotlib import pyplot bilang plt import seaborn bilang sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('Player average 3-point na pagtatangka (bawat 36 minuto) ') plt.notate (' 3 pointer ipinakilala ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' grey ', shrink = 0, linewidth = 2)) plt.annotate (' Ang NBA ay lumipat sa linya ng 3-point ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops = dict (facecolor = 'grey', shrink = 0, linewidth = 2)) plt. nonotate ('Ang NBA ay bumalik sa linya ng 3-point', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, arrowprops = dict (facecolor = 'grey', pag-urong = 0, linewidth = 2))

Output:

Linear Regression at VectorAssembler:

Maaari kaming magkasya sa isang linear na modelo ng pagbabalik sa curve na ito upang maipakita ang bilang ng mga pagtatangka sa pagbaril sa susunod na 5 taon. Kailangan nating ibahin ang aming data gamit ang pagpapaandar ng VectorAssembler sa isang solong haligi. Ito ay pangangailangan para sa linear regression API sa MLlib.

mula sa pyspark.ml.feature import VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'mga tampok') pagsasanay = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label ', fga_py.fg3a_p36m) pagsasanay.toPandas (). ulo ()

Output:

Modelong Pantayo:

Binubuo namin pagkatapos ang aming linear na modelo ng pagbabalik na modelo gamit ang aming nabago na data.

mula sa pyspark.ml.regression import LinearRegression lr = LinearRegression (maxIter = 10) modelo = lr.fit (pagsasanay)

Paglalapat ng Sanay na Modelo sa Dataset:

Inilalapat namin ang aming sinanay na modelo ng modelo ng bagay sa aming orihinal na hanay ng pagsasanay kasama ang 5 taon ng data sa hinaharap

mula sa pyspark.sql.types i-import ang row # apply model para sa panahon ng 1979-80 sa pamamagitan ng 2020-21 season training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). mangolekta () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). kolektahin () prediksi_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + prediction_yrs # built testing DataFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_feature = t.transform (test_rdd.map (row) .toDF ()) # apply linear model regression df_results = model.transform (all_years_feature) .toPandas ()

Plotting the final Prediction:

Maaari naming mai-plot ang aming mga resulta at mai-save ang grap sa isang tinukoy na lokasyon.

plt.plot (df_results.yr, df_results.prediction, linewidth = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (training_yrs, training_y, color = '# f08080 ', label = Wala) plt.xlabel (' Taon ') plt.ylabel (' Bilang ng mga pagtatangka ') plt.legend (loc = 4) _ = plt.title (' Karaniwan ng mga pagtatangka ng 3-point ng manlalaro (bawat 36 minuto) ') plt.tight_layout () plt.savefig (' / home / edureka / Mga Download / Mga Larawan / REGRESSION.png ')

Output:

At sa grap na ito, nakarating kami sa dulo ng PySpark Tutorial Blog na ito.

Kaya Ito na, Guys!

Inaasahan kong nakakuha kayo ng ideya kung ano ang PySpark, kung bakit ang Python ay pinakaangkop para sa Spark, ang RDDs at isang sulyap sa Pag-aaral ng Machine sa Pyspark sa PySpark Tutorial Blog na ito. Binabati kita, hindi ka na isang Newbie sa PySpark. 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 Blog.

kung paano pumasa sa pamamagitan ng sanggunian sa java

Ngayon na naintindihan mo kung ano ang Pyspark, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Edureka’s Python Spark Certification Training gamit ang PySpark ay idinisenyo upang mabigyan ka ng kaalaman at kasanayan na kinakailangan upang maging isang matagumpay na Spark Developer gamit ang Python at ihanda ka para sa Cloudera Hadoop at Spark Developer Certification Exam (CCA175).