Tutorial PySpark - Pelajari Apache Spark Menggunakan Python



Dalam blog ini di PySpark Tutorial, anda akan belajar tentang PSpark API yang digunakan untuk bekerja dengan Apache Spark menggunakan Bahasa Pengaturcaraan Python.

Di dunia di mana data dihasilkan pada kadar yang sangat membimbangkan, analisis yang tepat dari data tersebut pada waktu yang tepat sangat berguna. Salah satu kerangka kerja yang paling menakjubkan untuk menangani data besar dalam masa nyata dan melakukan analisis adalah Apache Spark.Bersama, atau PySpark adalah salah satu kursus pensijilan yang paling dicari, memberikan Scala for Spark untuk mendapatkan wangnya. Jadi dalam ini Tutorial PySpark blog, saya akan membincangkan topik berikut:





Tutorial PySpark: Apa itu PySpark?

Apache Spark adalah kerangka pengkomputeran kluster cepat yang digunakan untuk memproses, meminta dan menganalisis data Big. Berdasarkan pengiraan dalam memori, ia mempunyai kelebihan daripada beberapa Kerangka data besar yang lain.

Ciri PySpark - Tutorial PySpark - Edureka



Awalnya ditulis dalam Bahasa Pengaturcaraan Scala, komuniti sumber terbuka telah mengembangkan alat yang luar biasa untuk menyokong Python untuk Apache Spark. PySpark membantu saintis data berinteraksi dengan RDD di Apache Spark dan Python melalui perpustakaannya Py4j. Terdapat banyak ciri yang menjadikan PySpark kerangka yang lebih baik daripada yang lain:

panggil dengan rujukan di c ++
  • Kelajuan: Ia 100x lebih pantas daripada kerangka pemprosesan data berskala besar tradisional
  • Caching Kuat: Lapisan pengaturcaraan sederhana memberikan keupayaan cache dan ketekunan cakera yang kuat
  • Penerapan: Boleh digunakan melalui Mesos, Hadoop melalui Benang, atau pengurus kluster Spark sendiri
  • Waktu sebenar: Pengiraan masa nyata & kependaman rendah kerana pengiraan dalam memori
  • Polyglot: Menyokong pengaturcaraan di Scala, Java, Python dan R

Mari terus maju dengan Blog Tutorial PySpark kami dan lihat di mana Spark digunakan dalam industri ini.

PySpark dalam Industri

Setiap Industri berputar di sekitar Big Data dan di mana terdapat Big Data ada Analisis yang terlibat. Oleh itu, mari kita lihat pelbagai industri di mana Apache Spark digunakan.



Separuh adalah salah satu industri terbesar yang berkembang ke arah penstriman dalam talian. Netflix menggunakan Apache Spark untuk pemprosesan aliran masa nyata untuk memberikan cadangan dalam talian yang diperibadikan kepada pelanggannya. Ia memproses 450 bilion acara setiap hari yang mengalir ke aplikasi sisi pelayan.

Kewangan adalah sektor lain di mana pemprosesan Masa Nyata Apache Spark memainkan peranan penting. Bank menggunakan Spark untuk mengakses dan menganalisis profil media sosial, untuk mendapatkan pandangan yang dapat membantu mereka membuat keputusan perniagaan yang tepat penilaian risiko kredit , iklan yang disasarkan dan segmentasi pelanggan. Perubahan Pelanggan juga dikurangkan dengan menggunakan Spark. Pengesanan Penipuan adalah salah satu bidang Machine Learning yang paling banyak digunakan di mana Spark terlibat.

Penjagaan kesihatan penyedia menggunakan Apache Spark untuk Menganalisis rekod pesakit bersama dengan data klinikal yang lalu untuk mengenal pasti pesakit mana yang mungkin menghadapi masalah kesihatan setelah keluar dari klinik. Apache Spark digunakan dalam Penjujukan Genom untuk mengurangkan masa yang diperlukan untuk memproses data genom.

Runcit dan E-dagang adalah industri di mana seseorang tidak dapat membayangkannya berjalan tanpa menggunakan Analisis dan Iklan Sasaran. Salah satu platform E-dagang terbesar hari ini Alibaba menjalankan beberapa Pekerjaan Spark terbesar di dunia untuk menganalisis petabyte data. Alibaba membuat persembahan pengekstrakan ciri dalam data gambar. eBay menggunakan Apache Spark untuk menyediakan Tawaran yang disasarkan , meningkatkan pengalaman pelanggan dan mengoptimumkan prestasi keseluruhan.

Melancong Industri juga menggunakan Apache Spark. Pelancongan di sini , laman web pelancongan terkemuka yang membantu pengguna merancang perjalanan yang sempurna adalah menggunakan Apache Spark untuk mempercepatnya cadangan pelanggan yang diperibadikan .Penilaian menggunakan percikan api untuk memberikan nasihat kepada berjuta-juta pelancong oleh membandingkan beratus laman web untuk mencari harga hotel terbaik untuk pelanggannya.

Aspek penting dalam Tutorial PySpark ini adalah untuk memahami mengapa kita perlu mencari Python? Mengapa tidak Java, Scala atau R?

Langgan saluran youtube kami untuk mendapatkan kemas kini baru ..!


Mengapa Pergi untuk Python?

Mudah dipelajari: Bagi pengaturcara, Python lebih mudah dipelajari kerana sintaksis dan perpustakaan standardnya. Lebih-lebih lagi, ini adalah bahasa yang dinaip secara dinamik, yang bermaksud RDD dapat menyimpan objek dari pelbagai jenis.

Sebilangan besar Perpustakaan: Scala tidak mempunyai alat dan perpustakaan sains data yang mencukupi seperti Python untuk pembelajaran mesin dan pemprosesan bahasa semula jadi. Lebih-lebih lagi, Scala tidak mempunyai visualisasi dan transformasi data tempatan yang baik.

Sokongan Komuniti Besar: Python mempunyai komuniti global dengan berjuta-juta pembangun yang berinteraksi dalam talian dan luar talian di ribuan lokasi maya dan fizikal.

Salah satu topik yang paling penting dalam Tutorial PySpark ini adalah penggunaan RDD. Mari kita fahami apa itu RDD

Spark RDD

Berkaitan dengan pengkomputeran yang diedarkan secara berulang, iaitu memproses data melalui beberapa pekerjaan dalam pengiraan, kita perlu menggunakan semula atau berkongsi data di antara beberapa pekerjaan. Kerangka terdahulu seperti Hadoop mempunyai masalah ketika berurusan dengan pelbagai operasi / pekerjaan seperti

  • Menyimpan Data dalam Penyimpanan Menengah seperti HDFS
  • Pelbagai pekerjaan I / O menjadikan pengiraannya perlahan
  • Replikasi dan siri yang seterusnya menjadikan prosesnya lebih perlahan

RDD berusaha menyelesaikan semua masalah dengan mengaktifkan pengiraan In-memory yang bertaburan dengan toleransi kesalahan. RDD adalah kependekan dari Set Data Teragih yang berdaya tahan. RDD adalah pengabstrakan memori yang diedarkan yang membolehkan pengaturcara melakukan pengiraan dalam memori pada kelompok besar dengan cara yang bertolak ansur. Mereka adalah koleksi objek baca sahaja berpartisi di sebilangan mesin yang boleh dibina semula sekiranya partition hilang. Terdapat beberapa operasi yang dilakukan pada RDD:

  • Transformasi: Transformasi membuat set data baru dari yang ada. Penilaian Malas
  • Tindakan: Spark memaksa pengiraan untuk pelaksanaan hanya apabila tindakan dipanggil pada RDD

Mari kita fahami beberapa Transformasi, Tindakan dan Fungsi

Membaca fail dan Memaparkan elemen Top n:

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

Pengeluaran:

[u'Deforestasi timbul sebagai isu persekitaran dan sosial utama yang kini telah mengambil bentuk lebih dari sekadar setan yang kuat. ', kita mesti tahu mengenai sebab, kesan dan cara menyelesaikan masalah yang timbul kerana penebangan hutan. ', Kami telah menyediakan banyak perenggan, karangan panjang dan pendek mengenai penebangan hutan untuk membantu anak-anak dan anak-anak anda untuk mengetahui masalahnya serta turut serta dalam pertandingan menulis karangan di sekolah atau di luar sekolah. ', u'You boleh memilih mana-mana esei penebangan hutan yang diberikan di bawah ini mengikut standard kelas. ', u'Deforestasi timbul sebagai masalah global utama bagi masyarakat dan persekitaran.']

Menukar ke huruf kecil dan Membelah: (Bawah dan Berpisah)

def Func (lines): lines = lines.lower () lines = lines.split () lines return rdd1 = rdd.map (Func) rdd1. ambil (5)

Pengeluaran:

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

Membuang StopWords: (Tapis)

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

Pengeluaran:

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

Jumlah Nombor dari 1 hingga 500: (Kurangkan)

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

Pengeluaran:

124750

Pembelajaran Mesin dengan PySpark

Meneruskan Blog Tutorial PySpark kami, mari kita menganalisis beberapa Data BasketBall dan melakukan beberapa Ramalan masa depan. Oleh itu, di sini kita akan menggunakan Data Bola Keranjang dari semua pemain NBA sejak itu 1980 [tahun pengenalan 3 Pointer].

Pemuatan Data:

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

Mencetak Lajur:

menguraikan rentetan hingga ke java
cetak (lajur lajur)

Pengeluaran:

['_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']

Menyusun Pemain (OrderBy) dan kePanda:

Di sini kami menyusun pemain berdasarkan mata yang dijaringkan dalam satu musim.

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

Pengeluaran:

Menggunakan DSL dan matplotlib:

Di sini kita menganalisis jumlah purata Percubaan 3 mata untuk setiap musim dalam had masa 36 min [selang yang sesuai dengan permainan NBA penuh dengan rehat yang mencukupi]. Kami mengira metrik ini dengan menggunakan bilangan percubaan gol lapangan 3 mata (fg3a) dan minit dimainkan (mp) dan kemudian merancang hasilnya menggunakan matlplotlib .

dari pyspark.sql.fungsi import col fga_py = df.groupBy ('yr') .agg ({'mp': 'sum', 'fg3a': 'sum'}). pilih (col ('yr'), ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). Alias ​​('fg3a_p36m')) .orderBy ('yr') dari matplotlib import pyplot sebagai plt import seaborn sebagai sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Tahun') _ = plt.title ('Rata-rata pemain Percubaan 3 titik (setiap 36 minit) ') plt.annotate (' 3 pointer diperkenalkan ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops =ict (facecolor =' grey ', shrink = 0, linewidth = 2)) plt.annotate (' NBA bergerak dalam garis 3 titik ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops =ict (warna wajah = 'grey', shrink = 0, linewidth = 2)) plt.annotate ('NBA bergerak kembali garis 3 titik', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, arrowprops = dikt (warna wajah = 'kelabu', menyusut = 0, garis lebar = 2))

Pengeluaran:

Regresi Linear dan VektorAssembler:

Kita dapat menyesuaikan model regresi linier ke lengkung ini untuk memodelkan jumlah percubaan tembakan untuk 5 tahun ke depan. Kita harus mengubah data kita menggunakan fungsi VectorAssembler menjadi satu lajur. Ini adalah satu keperluan untuk API regresi linear di MLlib.

dari pyspark.ml.feature import VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'features') training = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label ', fga_py.fg3a_p36m) training.toPandas (). kepala ()

Pengeluaran:

Model Bangunan:

Kami kemudian membina objek model regresi linier kami menggunakan data transformasi kami.

dari pyspark.ml.regression import LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (latihan)

Menggunakan Model Terlatih ke Set Data:

Kami menerapkan model objek model terlatih kami ke set latihan asal kami bersama dengan data masa depan 5 tahun

dari pyspark.sql.tipe import Row # menerapkan model untuk musim 1979-80 hingga musim 2020-21 training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). kumpulkan () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). kumpulkan () prediction_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + prediction_yrs # built built DataFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (baris) .toDF ()) # menerapkan model regresi linear df_results = model.transform (all_years_features) .toPandas ()

Merangka Ramalan akhir:

Kami kemudian dapat merancang hasil kami dan menyimpan grafik di lokasi yang ditentukan.

idea terbaik untuk pembangunan java
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 = Tiada) plt.xlabel (' Tahun ') plt.ylabel (' Jumlah percubaan ') plt.legend (loc = 4) _ = plt.title (' Percubaan rata-rata pemain 3 mata (setiap 36 minit) ') plt.tight_layout () plt.savefig (' / rumah / edureka / Muat turun / Imej / REGRESSION.png ')

Pengeluaran:

Dan dengan grafik ini, kita sampai pada akhir Blog Tutorial PySpark ini.

Jadi ini, Guys!

Saya harap anda mendapat idea tentang apa itu PySpark, mengapa Python paling sesuai untuk Spark, RDD dan sekilas Pembelajaran Mesin dengan Pyspark dalam Blog Tutorial PySpark ini. Tahniah, anda bukan lagi Pemula di PySpark. Sekiranya anda ingin mengetahui lebih lanjut mengenai PySpark dan Memahami Kes Penggunaan Industri yang berbeza, lihat di kami Bercakap dengan Python Blog.

Sekarang setelah anda memahami Apa itu Pyspark, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Edureka's Latihan Persijilan Python Spark menggunakan PySpark dirancang untuk memberi anda pengetahuan dan kemahiran yang diperlukan untuk menjadi Spark Developer yang berjaya menggunakan Python dan mempersiapkan anda untuk Ujian Persijilan Cloudera Hadoop dan Spark Developer (CCA175).