Pengantar Spark dengan Python - PySpark untuk Pemula



Apache Spark telah mengambil alih dunia Big Data & Analytics dan Python adalah salah satu bahasa pemrograman yang paling mudah diakses yang digunakan di Industri saat ini. Jadi di blog ini, kita akan belajar tentang Pyspark (percikan dengan python) untuk mendapatkan yang terbaik dari kedua dunia.

adalah salah satu framework yang paling banyak digunakan saat menangani dan bekerja dengan Big Data AND Python adalah salah satu bahasa pemrograman yang paling banyak digunakan untuk Analisis Data, Pembelajaran Mesin, dan banyak lagi. Jadi, mengapa tidak menggunakannya bersama? Ini dimana Percikan dengan Python juga dikenal sebagai PySpark datang keitugambar.

cara mengurai file xml di java

Dengan gaji rata-rata $ 110.000 per tahun untuk Pengembang Apache Spark, tidak diragukan lagi bahwa Spark banyak digunakan di industri ini. Karena-nyarich library set, Python digunakan olehituMayoritas Ilmuwan Data dan pakar Analytics saat ini. Mengintegrasikan Python dengan Spark adalah hadiah utama bagi komunitas. Spark dikembangkan dalam bahasa Scala, yang sangat mirip dengan Java. Ini mengkompilasi kode program menjadi bytecode untuk JVM untuk memicu pemrosesan data besar. Untuk mendukung Spark dengan python, komunitas Apache Spark merilis PySpark.Semenjak, telah dikenal sebagai salah satu keterampilan yang paling dicari di seluruh industri karena berbagai manfaat yang didapat setelah menggabungkan yang terbaik dari kedua dunia ini.Di blog Spark dengan Python ini, saya akan membahas topik-topik berikut.





Pengantar Apache Spark

Apache Spark adalah kerangka kerja komputasi cluster open-source untuk pemrosesan waktu nyata dikembangkan oleh Apache Software Foundation. Spark menyediakan antarmuka untuk memprogram seluruh cluster dengan implisit paralelisme data dan toleransi kesalahan.



Di bawah ini adalah beberapa fitur Apache Spark yang memberikan keunggulan dibandingkan framework lain:

Fitur Spark - Spark dengan Python - Edureka

  • 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: Waktu sebenarnyakomputasi & latensi rendah karena komputasi dalam memori.
  • Poliglot: Ini adalah salah satu yang terpentingfiturkerangka kerja ini karena dapat diprogram di Scala, Java, Python, dan R.

Mengapa memilih Python?

Meskipun Spark dirancang dalam skala besar, yang membuatnya hampir 10 kali lebih cepat dari Python, tetapi Scala lebih cepat hanya jika jumlah inti yang digunakan lebih sedikit . Karena sebagian besar analisis dan proses saat ini memerlukan core dalam jumlah besar, keunggulan kinerja Scala tidak terlalu besar.



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

Meskipun Scala punya SparkMLlib tidak ada cukup pustaka dan alat untuk Machine Learning dan NLP tujuan. Selain itu, Scala tidak memiliki Visualisasi Data.

Pelatihan PySpark | Apache Spark dengan Python | Edureka

Berlangganan saluran youtube kami untuk mendapatkan pembaruan baru ..!

Menyiapkan Spark dengan Python (PySpark)

Saya harap kalian tahu caranya .Jadi, setelah Anda membuka ritsleting file percikan, terpasang itu dan menambahkannya jalur ke .bashrc file, Anda perlu mengetiksumber .bashrc

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

Untuk membuka shell pyspark Anda perlu mengetikkan perintah./bin/pyspark

Percikan di Industri

Apache Spark karena fiturnya yang luar biasa seperti pemrosesan dalam memori , poliglot dan pemrosesan cepat digunakan oleh banyak perusahaan di seluruh dunia untuk berbagai keperluan di berbagai industri:

Yahoo menggunakan Apache Spark karena kemampuan Machine Learning untuk mempersonalisasi berita, halaman web, dan juga untuk iklan target. Mereka menggunakan Spark dengan python untuk mengetahui berita seperti apa - pengguna yang tertarik untuk membaca dan mengkategorikan berita untuk mengetahui pengguna seperti apa yang akan tertarik untuk membaca setiap kategori berita.

TripAdvisor menggunakan apache spark untuk memberikan saran kepada jutaan pelancong dengan membandingkan ratusan situs web untuk menemukan harga hotel terbaik bagi pelanggannya. Waktu yang dibutuhkan untuk membaca dan memproses ulasan hotel dalam format yang dapat dibaca dilakukan dengan bantuan Apache Spark.

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

PySpark SparkContext dan Aliran Data

Berbicara tentang Spark dengan Python, bekerja dengan RDD dimungkinkan oleh pustaka Py4j. PySpark Shell menautkan Python API ke spark core dan menginisialisasi Spark Context. Spark Context adalah inti dari aplikasi percikan apa pun.

  1. Konteks Spark menyiapkan layanan internal dan membuat koneksi ke lingkungan eksekusi Spark.
  2. Objek sparkcontext dalam program driver mengoordinasikan semua proses terdistribusi dan memungkinkan alokasi sumber daya.
  3. Manajer Cluster menyediakan Pelaksana, yang merupakan proses JVM dengan logika.
  4. Objek SparkContext mengirimkan aplikasi ke pelaksana.
  5. SparkContext menjalankan tugas di setiap pelaksana.

Kasus Penggunaan PySpark KDD

Sekarang Mari kita lihat Kasus Penggunaan Piala KDD’99 (Kompetisi Penemuan Pengetahuan Internasional dan Alat Penambangan Data).Di sini kita akan mengambil sebagian kecil dari dataset karena dataset asli terlalu besar

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

MEMBUAT RDD:
Sekarang kita dapat menggunakan file ini untuk buat RDD kami .

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

PENYARINGAN:

Misalkan Kita ingin menghitung berapa normal. interaksi yang kami miliki dalam kumpulan data kami. Kita dapat Saring RDD raw_data kami sebagai berikut.

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

MENGHITUNG:

Sekarang kita bisa menghitung berapa banyak elemen yang kita miliki di RDD baru.

dari waktu impor waktu t0 = waktu () normal_count = normal_raw_data.count () tt = waktu () - t0 cetak 'Ada {}' interaksi 'normal'. format (hitungan_ormal) cetak 'Hitungan selesai dalam {} detik'. format (bulat (tt, 3))

Keluaran:

Ada 97.278 interaksi 'normal' Hitungan selesai dalam 5,951 detik

PEMETAAN:

Di dalamkasuskami ingin membaca file data kami sebagai file berformat CSV. Kita bisa melakukan ini dengan menerapkan fungsi lambda ke setiap elemen di RDD sebagai berikut. Di sini kita akan menggunakan map () dan take () 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 {} detik '. format (bulat (tt, 3)) pprint (head_rows [0])

Keluaran:

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

PEMISAHAN:

Sekarang kita ingin memiliki setiap elemen di RDD sebagai pasangan nilai-kunci dimana kuncinya adalah tag (mis. normal ) dan nilainya adalah seluruh daftar elemen yang mewakili baris dalam file berformat CSV. Kami dapat melanjutkan sebagai berikut. Di sini kami menggunakan line.split () dan map ().

def parse_interaction (baris): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Keluaran: (u'normal. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U'normal. '])

AKSI KOLEKSI:

Di sini kita akan menggunakan aksi collect (). Ini akan memasukkan semua elemen RDD ke dalam memori. Untuk alasan ini, harus digunakan dengan hati-hati saat bekerja dengan RDD besar.

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

Keluaran:

Data dikumpulkan dalam 17,927 detik

Itu membutuhkan waktu lebih lama dari tindakan lain yang kami gunakan sebelumnya, tentu saja. Setiap node pekerja Spark yang memiliki fragmen RDD harus dikoordinasikan untuk mengambil bagiannya dan kemudian mengurangi semuanya bersama-sama.

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

# dapatkan data dari file data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # parse menjadi pasangan nilai kunci key_csv_data = raw_data.map (parse_interaction) # filter interaksi kunci normal normal_key_interactions = key_csv_data.filter lambda x: x [0] == 'normal.') # kumpulkan semua t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Data dikumpulkan dalam {} detik '.format (round (tt, 3)) print' Ada {} interaksi 'normal'. format (normal_count)

Keluaran:

Data dikumpulkan dalam 12,485 detik Ada 97278 interaksi normal

Jadi ini dia, guys!

Saya harap Anda menikmati blog Spark dengan Python ini. Jika Anda membaca ini, Selamat! Anda bukan lagi pemula di PySpark. Coba contoh sederhana ini di sistem Anda sekarang.

Sekarang Anda telah memahami dasar-dasar 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).

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.