Tutorial PySpark - Pelajari Apache Spark Menggunakan Python



Di blog Tutorial PySpark ini, Anda akan belajar tentang PSpark API yang digunakan untuk bekerja dengan Apache Spark menggunakan Bahasa Pemrograman Python.

Di dunia di mana data dihasilkan pada tingkat yang mengkhawatirkan, analisis yang benar atas data tersebut pada waktu yang tepat sangat berguna. Salah satu kerangka kerja paling luar biasa untuk menangani data besar secara real-time dan melakukan analisis adalah Apache Spark.Bersama, atau PySpark adalah salah satu kursus sertifikasi yang paling banyak dicari, memberikan Scala for Spark uangnya. Jadi dalam hal ini Tutorial PySpark blog, saya akan membahas topik berikut:





program java untuk seri fibonacci

Tutorial PySpark: Apa itu PySpark?

Apache Spark adalah kerangka kerja komputasi cluster cepat yang digunakan untuk memproses, membuat kueri, dan menganalisis Big data. Berbasis komputasi dalam memori, ia memiliki keunggulan dibandingkan beberapa Kerangka data besar lainnya.

Fitur PySpark - Tutorial PySpark - Edureka



Awalnya ditulis dalam Bahasa Pemrograman Scala, komunitas open source telah mengembangkan alat luar biasa untuk mendukung Python untuk Apache Spark. PySpark membantu ilmuwan data berinteraksi dengan RDD di Apache Spark dan Python melalui perpustakaannya Py4j. Ada banyak fitur yang membuat PySpark menjadi kerangka kerja yang lebih baik daripada yang lain:

  • Kecepatan: Ini 100x lebih cepat daripada kerangka kerja pemrosesan data skala besar tradisional
  • Caching yang Kuat: Lapisan pemrograman sederhana menyediakan kemampuan penyimpanan cache dan persistensi disk yang kuat
  • Penyebaran: Dapat diterapkan melalui Mesos, Hadoop melalui Yarn, atau pengelola cluster Spark sendiri
  • Waktu sebenarnya: Komputasi real-time & latensi rendah karena komputasi dalam memori
  • Poliglot: Mendukung pemrograman di Scala, Java, Python dan R.

Mari lanjutkan dengan Blog Tutorial PySpark kami dan lihat di mana Spark digunakan dalam industri.

PySpark di Industri

Setiap Industri berputar di sekitar Big Data dan di mana ada Big Data di sana ada Analisis yang terlibat. Jadi mari kita lihat berbagai industri tempat Apache Spark digunakan.



Setengah adalah salah satu industri terbesar yang berkembang menuju streaming online. Netflix menggunakan Apache Spark untuk pemrosesan streaming waktu nyata guna memberikan rekomendasi online yang dipersonalisasi kepada pelanggannya. Itu memproses 450 miliar peristiwa per hari yang mengalir ke aplikasi sisi server.

Keuangan adalah sektor lain tempat pemrosesan Real-Time Apache Spark memainkan peran penting. Bank menggunakan Spark untuk mengakses dan menganalisis profil media sosial, untuk mendapatkan wawasan yang dapat membantu mereka membuat keputusan bisnis yang tepat penilaian risiko kredit , iklan bertarget, dan segmentasi pelanggan. Pelanggan Churn juga dikurangi menggunakan Spark. Deteksi Penipuan adalah salah satu area Machine Learning yang paling banyak digunakan di mana Spark terlibat.

Kesehatan penyedia menggunakan Apache Spark untuk Analisis catatan pasien bersama dengan data klinis sebelumnya untuk mengidentifikasi pasien mana yang cenderung menghadapi masalah kesehatan setelah keluar dari klinik. Apache Spark digunakan di Pengurutan Genomik untuk mengurangi waktu yang dibutuhkan untuk memproses data genom.

Ritel dan E-niaga adalah industri di mana orang tidak dapat membayangkannya berjalan tanpa menggunakan Analisis dan Iklan Bertarget. Salah satu platform E-commerce terbesar saat ini Alibaba menjalankan beberapa Pekerjaan Spark terbesar di dunia untuk menganalisis data berukuran petabyte. Alibaba tampil ekstraksi fitur dalam data gambar. eBay menggunakan Apache Spark untuk menyediakan Penawaran Bertarget , tingkatkan pengalaman pelanggan dan optimalkan kinerja secara keseluruhan.

Perjalanan Industri juga menggunakan Apache Spark. TripAdvisor , situs web perjalanan terkemuka yang membantu pengguna merencanakan perjalanan yang sempurna menggunakan Apache Spark untuk mempercepatnya rekomendasi pelanggan yang dipersonalisasi .TripAdvisor menggunakan percikan apache untuk memberikan saran kepada jutaan wisatawan oleh membandingkan ratusan situs web untuk menemukan harga hotel terbaik bagi pelanggannya.

Aspek penting dari Tutorial PySpark ini adalah untuk memahami mengapa kita perlu menggunakan Python? Mengapa bukan Java, Scala atau R?

Berlangganan saluran youtube kami untuk mendapatkan pembaruan baru ..!


Mengapa Memilih Python?

Mudah untuk dipelajari: Untuk programmer, Python relatif lebih mudah dipelajari karena sintaks dan pustaka standarnya. Selain itu, ini adalah bahasa yang diketik secara dinamis, yang berarti RDD dapat menampung objek dari berbagai jenis.

Satu set Perpustakaan yang luas: Scala tidak memiliki alat dan pustaka ilmu data yang memadai seperti Python untuk pembelajaran mesin dan pemrosesan bahasa alami. Selain itu, Scala kurang memiliki visualisasi dan transformasi data lokal yang baik.

mengkonversi dari double menjadi int

Dukungan Komunitas Besar: Python memiliki komunitas global dengan jutaan pengembang yang berinteraksi online dan offline di ribuan lokasi virtual dan fisik.

Salah satu topik terpenting dalam Tutorial PySpark ini adalah penggunaan RDD. Mari kita pahami apa itu RDD

Spark RDD

Ketika datang ke komputasi terdistribusi berulang, yaitu memproses data melalui banyak pekerjaan dalam komputasi, kita perlu menggunakan kembali atau berbagi data di antara banyak pekerjaan. Kerangka kerja sebelumnya seperti Hadoop mengalami masalah saat menangani banyak operasi / pekerjaan seperti

  • Menyimpan Data di Penyimpanan Menengah seperti HDFS
  • Beberapa tugas I / O membuat komputasi menjadi lambat
  • Replikasi dan serialisasi yang pada gilirannya membuat proses lebih lambat

RDD mencoba untuk menyelesaikan semua masalah dengan mengaktifkan komputasi Dalam memori terdistribusi yang toleran terhadap kesalahan. RDD adalah kependekan dari Set Data Terdistribusi Tangguh. RDD adalah abstraksi memori terdistribusi yang memungkinkan pemrogram melakukan komputasi dalam memori pada cluster besar dengan cara yang toleran terhadap kesalahan. Mereka adalah koleksi objek hanya-baca dipartisi di sekumpulan mesin yang dapat dibangun kembali jika partisi hilang. Ada beberapa operasi yang dilakukan pada RDD:

  • Transformasi: Transformasi membuat kumpulan data baru dari yang sudah ada. Evaluasi Malas
  • Tindakan: Spark memaksa penghitungan untuk eksekusi hanya ketika tindakan dipanggil di RDD

Mari kita pahami beberapa Transformasi, Tindakan, dan Fungsi

Membaca file dan Menampilkan n elemen Teratas:

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

Keluaran:

[u'Deforestasi muncul sebagai masalah lingkungan dan sosial utama yang sekarang telah menjadi lebih dari sekadar setan yang kuat. ', u'Kita harus tahu tentang penyebab, efek dan cara untuk memecahkan masalah yang muncul karena deforestasi. Kami telah menyediakan banyak paragraf, esai panjang dan pendek tentang deforestasi untuk membantu anak-anak Anda dan anak-anak Anda untuk mengetahui masalah serta berpartisipasi dalam lomba penulisan esai di sekolah atau di luar sekolah. ', u'Anda dapat memilih esai deforestasi yang diberikan di bawah ini sesuai dengan standar kelas. ', u'Deforestasi muncul sebagai masalah global utama bagi masyarakat dan lingkungan.']

Mengonversi ke huruf kecil dan Memisahkan: (Bawah dan Pisahkan)

def Func (baris): baris = baris.lower () baris = baris.split () baris kembali rdd1 = rdd.map (Func) rdd1.take (5)

Keluaran:

[[u'deforestasi ', 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 ', ...... . . ]

Menghapus StopWords: (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 tidak ada di stop_words) rdd2.take (10)

Keluaran:

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

Jumlah Angka dari 1 hingga 500: (Kurangi)

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

Keluaran:

124750

Pembelajaran Mesin dengan PySpark

Melanjutkan Blog Tutorial PySpark kami, mari menganalisis beberapa Data Bola Basket dan melakukan beberapa Prediksi di masa mendatang. Jadi, di sini kita akan menggunakan Data Bola Basket 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 Kolom:

cetak (df.columns)

Keluaran:

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

Menyortir Pemain (OrderBy) dan toPandas:

Di sini kami mengurutkan pemain berdasarkan poin yang dicetak dalam satu musim.

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

Keluaran:

Menggunakan DSL dan matplotlib:

Di sini kami menganalisis jumlah rata-rata Percobaan 3 poin untuk setiap musim dalam batas waktu 36 menit [interval yang sesuai dengan perkiraan permainan NBA penuh dengan istirahat yang cukup]. Kami menghitung metrik ini menggunakan jumlah percobaan gol lapangan 3 poin (fg3a) dan menit yang dimainkan (mp) dan kemudian plot hasilnya menggunakan matlplotlib.dll .

dari pyspark.sql.functions 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') dari matplotlib import pyplot as plt import seaborn as 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 Percobaan 3 poin (per 36 menit) ') plt.annotate (' 3 pointer diperkenalkan ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' grey ', menyusut = 0, linewidth = 2)) plt.annotate (' NBA dipindahkan dalam garis 3-titik ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops = dict (facecolor = 'abu-abu', menyusut = 0, linewidth = 2)) plt.annotate ('NBA pindah garis 3-poin', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, panah = dict (facecolor = 'grey', shrink = 0, linewidth = 2))

Keluaran:

Regresi Linier dan VectorAssembler:

Kita dapat menyesuaikan model regresi linier ke kurva ini untuk memodelkan jumlah upaya pengambilan gambar selama 5 tahun ke depan. Kita harus mengubah data kita menggunakan fungsi VectorAssembler menjadi satu kolom. Ini adalah sebuah kebutuhan untuk API regresi linier 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 (). head ()

Keluaran:

Model Bangunan:

Kami kemudian membangun objek model regresi linier kami menggunakan data yang telah diubah.

dari pyspark.ml.regressi import LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (pelatihan)

Menerapkan Model Terlatih ke Set Data:

Kami menerapkan model objek model terlatih kami ke set pelatihan asli kami bersama dengan data 5 tahun mendatang

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

Merencanakan Prediksi Akhir:

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

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 = None) plt.xlabel (' Year ') plt.ylabel (' Jumlah upaya ') plt.legend (loc = 4) _ = plt.title (' Upaya rata-rata pemain 3 poin (per 36 menit) ') plt.tight_layout () plt.savefig (' / home / edureka / Downloads / Images / REGRESSION.png ')

Keluaran:

selenium webdriver dengan contoh ketimun di eclipse

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

Jadi ini dia, Guys!

Saya harap kalian mendapat gambaran tentang apa itu PySpark, mengapa Python paling cocok untuk Spark, RDD dan sekilas tentang Machine Learning dengan Pyspark di Blog Tutorial PySpark ini. Selamat, Anda bukan lagi seorang Newbie di PySpark. Jika Anda ingin mempelajari lebih lanjut tentang PySpark dan Memahami Berbagai Kasus Penggunaan Industri, lihat kami Percikan dengan Python Blog.

Sekarang setelah Anda memahami Apa itu Pyspark, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Edureka's Pelatihan Sertifikasi Python Spark menggunakan PySpark dirancang untuk memberi Anda pengetahuan dan keterampilan yang dibutuhkan untuk menjadi Pengembang Spark yang sukses menggunakan Python dan mempersiapkan Anda untuk Ujian Sertifikasi Pengembang Cloudera Hadoop dan Spark (CCA175).