Pengenalan Spark with Python - PySpark for Beginners



Apache Spark telah mengambil alih dunia Big Data & Analytics dan Python adalah salah satu bahasa pengaturcaraan yang paling mudah digunakan di Industri sekarang. Oleh itu, di blog ini, kita akan belajar mengenai Pyspark (percikan api dengan ular sawa) untuk mendapatkan yang terbaik dari kedua dunia.

adalah salah satu kerangka yang paling banyak digunakan ketika menangani dan bekerja dengan Big Data AND Python adalah salah satu bahasa pengaturcaraan yang paling banyak digunakan untuk Analisis Data, Pembelajaran Mesin dan banyak lagi. Jadi, mengapa tidak menggunakannya bersama-sama? Di sinilah dimana Bercakap dengan Python juga dikenali sebagai PySpark masuk ke dalamyanggambar.

Dengan gaji rata-rata $ 110,000 pa untuk Apache Spark Developer, tidak diragukan lagi bahawa Spark banyak digunakan di industri ini. Disebabkanituset perpustakaan kaya, Python digunakan olehyangmajoriti saintis Data dan pakar Analitis hari ini. Menggabungkan Python dengan Spark adalah hadiah utama kepada masyarakat. Spark dikembangkan dalam bahasa Scala, yang sangat mirip dengan Java. Ia menyusun kod program menjadi kod bytec untuk JVM untuk memproses data besar. Untuk menyokong Spark dengan python, komuniti Apache Spark mengeluarkan PySpark.Sejak, telah dikenali sebagai salah satu kemahiran yang paling dicari di seluruh industri kerana pelbagai faedah yang diperoleh setelah menggabungkan yang terbaik dari kedua-dua dunia ini.Dalam blog Spark with Python ini, saya akan membincangkan topik berikut.





Pengenalan kepada Apache Spark

Apache Spark adalah kerangka pengkomputeran kluster sumber terbuka untuk pemprosesan masa nyata dibangunkan oleh Apache Software Foundation. Spark menyediakan antara muka untuk memprogram seluruh kelompok dengan tersirat selari data dan toleransi kesalahan.



Berikut adalah beberapa ciri Apache Spark yang memberikan kelebihan berbanding kerangka kerja lain:

Ciri Spark - Spark dengan Python - Edureka

  • 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: Waktu sebenarpengiraan & kependaman rendah kerana pengiraan dalam memori.
  • Polyglot: Ia adalah salah satu yang paling pentingciri-cirikerangka ini kerana dapat diprogramkan di Scala, Java, Python dan R.

Mengapa pergi ke Python?

Walaupun Spark dirancang dalam skala, yang menjadikannya hampir 10 kali lebih cepat daripada Python, tetapi Scala lebih cepat hanya apabila bilangan teras yang digunakan adalah kurang . Oleh kerana kebanyakan analisis dan proses pada masa ini memerlukan sebilangan besar teras, kelebihan prestasi Scala tidak begitu banyak.



Untuk pengaturcara Python adalah lebih mudah dibandingkan untuk belajar kerana perpustakaan sintaks dan standardnya. Lebih-lebih lagi, ia adalah bahasa yang dinaip secara dinamik, yang bermaksud RDD dapat menahan objek pelbagai jenis.

Walaupun Scala mempunyai SparkMLlib tidak ada perpustakaan dan alat yang mencukupi untuk Pembelajaran Mesin dan NLP tujuan. Lebih-lebih lagi, Scala kekurangan Visualisasi Data.

Latihan PySpark | Apache Spark dengan Python | Edureka

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

Menyiapkan Spark dengan Python (PySpark)

Saya harap anda tahu bagaimana .Jadi, setelah anda berjaya tanpa zip fail percikan, dipasang dan menambah jalan ke .bashrc fail, anda perlu menaipsumber .bashrc

eksport SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 eksport PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin

Untuk membuka shell pyspark, anda perlu memasukkan arahan./bin/pyspark

Percikan dalam Industri

Apache Spark kerana ciri-ciri yang luar biasa seperti pemprosesan dalam ingatan , poliglot dan pemprosesan pantas digunakan oleh banyak syarikat di seluruh dunia untuk pelbagai tujuan dalam pelbagai industri:

Yahoo menggunakan Apache Spark untuk keupayaan Pembelajaran Mesin untuk memperibadikan berita, laman web dan juga untuk iklan sasaran. Mereka menggunakan Spark dengan ular sawa untuk mengetahui jenis berita - pengguna berminat untuk membaca dan mengkategorikan berita untuk mengetahui jenis pengguna yang berminat membaca setiap kategori berita.

java bagaimana membuat susunan objek

Pelancongan di sini menggunakan apache spark untuk memberi nasihat kepada berjuta-juta pelancong dengan membandingkan ratusan laman web untuk mencari harga hotel terbaik untuk pelanggannya. Masa yang diperlukan untuk membaca dan memproses ulasan hotel dalam format yang dapat dibaca dilakukan dengan bantuan Apache Spark.

Salah satu platform e-dagang terbesar di dunia Alibaba menjalankan beberapa pekerjaan Apache Spark terbesar di dunia untuk menganalisis ratusan petabyte data di platform e-dagang.

PySpark SparkContext dan Aliran Data

Bercakap tentang Spark dengan Python, bekerja dengan RDD dimungkinkan oleh Py4j perpustakaan. PySpark Shell menghubungkan API Python ke inti percikan dan menginisialisasi Spark Context. Konteks Spark adalah nadi bagi sebarang aplikasi percikan api.

  1. Konteks Spark mengatur perkhidmatan dalaman dan mewujudkan hubungan ke persekitaran pelaksanaan Spark.
  2. Objek percikan api dalam program pemacu menyelaraskan semua proses yang diedarkan dan membolehkan peruntukan sumber.
  3. Pengurus Kluster memberikan logik kepada Pelaksana, yang merupakan proses JVM.
  4. Objek SparkContext menghantar aplikasi tersebut kepada pelaksana.
  5. SparkContext melaksanakan tugas dalam setiap pelaksana.

Kes Penggunaan PySpark KDD

Sekarang mari kita lihat Kes Penggunaan Piala KDD'99 (Pertandingan Penemuan Pengetahuan dan Perlombongan Pengetahuan Antarabangsa).Di sini kita akan mengambil sebahagian kecil daripada set data kerana set data asal terlalu besar

import urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')

MENCIPTAKAN RDD:
Sekarang kita boleh menggunakan fail ini untuk buat RDD kami .

data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file)

PENAPISAN:

Andaikan Kami mahu mengira berapa jumlah normal. interaksi yang ada dalam set data kami. Kita boleh tapis RDD raw_data kami seperti berikut.

normal_raw_data = raw_data.filter (lambda x: 'normal.' dalam x)

KUMPULAN:

Sekarang kita boleh mengira berapa banyak elemen yang kita ada dalam RDD baru.

dari masa import waktu t0 = waktu () normal_count = normal_raw_data.count () tt = time () - t0 print 'Terdapat {}' interaksi 'normal'. format (normal_count) cetak 'Kiraan selesai dalam {} saat'. format (bulat (tt, 3))

Pengeluaran:

Terdapat 97278 Kiraan interaksi 'normal' selesai dalam 5.951 saat

PETA:

Di dalam inikeskami mahu membaca fail data kami sebagai format CSV. Kita dapat melakukan ini dengan menerapkan fungsi lambda pada setiap elemen dalam RDD seperti berikut. Di sini kita akan menggunakan peta () dan ambil () transformasi.

dari pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Parse selesai dalam {} saat '. format (bulat (tt, 3)) cetakan (kepala_rows [0])

Pengeluaran:

Parse selesai dalam 1.715 saat [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . tidak normal.]]

PENCERAHAN:

Sekarang kita mahu setiap elemen dalam RDD sebagai pasangan nilai-kunci di mana kuncinya adalah tag (mis. biasa ) dan nilainya adalah keseluruhan senarai elemen yang mewakili baris dalam fail berformat CSV. Kami boleh meneruskan seperti berikut. Di sini kita menggunakan line.split () dan peta ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) cetakan (head_rows [0] )
 Pengeluaran: (u'normal. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0.00 ', u'1.00', .... Tidak normal. '])

TINDAKAN KUMPULAN:

Di sini kita akan menggunakan tindakan mengumpulkan (). Ia akan memasukkan semua elemen RDD ke dalam memori. Atas sebab ini, ia mesti digunakan dengan berhati-hati ketika bekerja dengan RDD yang besar.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Data dikumpulkan dalam format {} seconds'. (bulat (tt, 3))

Pengeluaran:

Data dikumpulkan dalam 17.927 saat

Sudah tentu lebih lama seperti tindakan lain yang kami gunakan sebelumnya. Setiap simpul pekerja Spark yang mempunyai serpihan RDD harus diselaraskan untuk mendapatkan bahagiannya dan kemudian mengurangkan semuanya bersama-sama.

Sebagai contoh terakhir menggabungkan semua yang sebelumnya, kami ingin mengumpulkan semuabiasainteraksi sebagai pasangan nilai-kunci.

# dapatkan data dari file data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # parse to key-value pair key_csv_data = raw_data.map (parse_interaction) # saring interaksi kunci normal normal_key_interactions = key_csil_data. lambda x: x [0] == 'normal.') # kumpulkan semua t0 = masa () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Data dikumpulkan dalam {} saat '.format (bulat (tt, 3)) cetak' Terdapat {} 'interaksi' normal '. format (normal_count)

Pengeluaran:

Data dikumpulkan dalam 12.485 saat Terdapat 97278 interaksi normal

Jadi ini, kawan!

Saya harap anda menikmati blog Spark dengan Python ini. Sekiranya anda membaca ini, Tahniah! Anda bukan lagi pemula untuk PySpark. Cubalah contoh mudah ini pada sistem anda sekarang.

Sekarang setelah anda memahami asas-asas 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).

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.