PySpark Untuk Pemula – Menuju AI

PySpark Untuk Pemula – Menuju AI

Pengarang: Muttineni Sai Rohith

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

PySpark adalah API Python untuk Apache Spark. Dengan menggunakan PySpark, kita dapat menjalankan aplikasi secara paralel pada cluster terdistribusi (multiple node).

Sumber: Databricks

Jadi kita akan memulai bagian teori terlebih dahulu tentang mengapa kita membutuhkan Pyspark dan latar belakang Apache Spark, fitur dan tipe manajer cluster, serta modul dan paket Pyspark.

Apache Spark adalah mesin pemrosesan analitik untuk pemrosesan data terdistribusi yang kuat dan aplikasi pembelajaran mesin skala besar. Umumnya, Spark ditulis dalam Scala, tetapi untuk adaptasi industri, Python API — PySpark dirilis untuk menggunakan spark dengan Python. Secara real-time, PySpark banyak digunakan di komunitas pembelajaran mesin & ilmuwan data; Spark menjalankan operasi pada miliaran dan triliunan data pada cluster terdistribusi 100 kali lebih cepat daripada aplikasi python tradisional.

Fitur dan Keunggulan Pyspark

Arsitektur Pispark

Apache Spark bekerja dalam arsitektur master-slave di mana master disebut “Driver” dan budak disebut “Pekerja”. Spark Driver membuat konteks percikan yang berfungsi sebagai titik masuk ke aplikasi, dan semua operasi berjalan di node pekerja, dan sumber daya dikelola oleh manajer klaster.

Sumber: Spark.Apache.org

Tipe Manajer Cluster

Sistem saat ini mendukung beberapa manajer cluster selain itu, kami juga dapat menjalankan spark secara lokal di desktop/sistem kami:

Standalone — manajer cluster sederhana yang disertakan dengan Spark yang memudahkan penyiapan cluster. Apache Mesos — manajer cluster umum yang juga dapat menjalankan Hadoop MapReduce dan aplikasi layanan. (Usang) Hadoop YARN — pengelola sumber daya di Hadoop 2 dan 3. Manajer cluster Kubernetes yang paling sering digunakan — sistem sumber terbuka untuk mengotomatiskan penerapan, penskalaan, dan pengelolaan aplikasi dalam container.

Pyspark conf, konteks Pyspark, dan sesi Pyspark:

Pyspark conf: SparkConf menawarkan konfigurasi untuk aplikasi Spark apa pun. Untuk memulai aplikasi Spark apa pun pada Cluster lokal atau kumpulan data, kita perlu mengatur beberapa konfigurasi dan parameter, dan itu dapat dilakukan menggunakan SparkConf.

Fitur conf Pyspark:

set(key, value) — Mengatur properti konfigurasi. setMaster(value) — Mengatur URL master untuk disambungkan. setAppName(nilai) — Mengatur nama aplikasi. get(key,defaultValue=None) — Dapatkan nilai yang dikonfigurasi untuk beberapa kunci, atau kembalikan default sebaliknya. setSparkHome(value) — Setel jalur tempat Spark diinstal pada node pekerja.

Konteks Pyspark: SparkContext adalah titik masuk ke fungsionalitas percikan apa pun. Saat kami menjalankan aplikasi Spark apa pun, program driver dimulai, yang memiliki fungsi utama dan SparkContext Anda dimulai di sini. Program driver kemudian menjalankan operasi di dalam eksekutor pada node pekerja.

Program driver Spark membuat dan menggunakan SparkContext untuk terhubung ke manajer cluster untuk mengirimkan pekerjaan PySpark dan mengetahui manajer sumber daya mana yang harus berkomunikasi. Ini adalah jantung dari aplikasi PySpark.

Kami hanya dapat membuat satu SparkContext per JVM. Untuk membuat yang lain terlebih dahulu, Anda harus menghentikan yang sudah ada dengan menggunakan metode stop(). SparkContext tersedia secara default sebagai ‘sc’. Jadi membuat variabel lain alih-alih sc akan memberikan kesalahan.

Sesi Pyspark: Sejak Spark 2.0 SparkSession telah menjadi titik masuk ke PySpark untuk bekerja dengan RDD, dan DataFrame. Sebelum 2.0, SparkContext digunakan untuk menjadi titik masuk. SparkSession adalah kelas gabungan untuk semua konteks berbeda yang dulu kami miliki sebelum rilis 2.0 (SQLContext dan HiveContext dll). Sejak 2.0 SparkSession dapat digunakan sebagai pengganti SQLContext, HiveContext, dan konteks lain yang ditentukan sebelum 2.0.

Meskipun SparkContext dulunya merupakan titik masuk sebelum 2.0, Ini tidak sepenuhnya diganti dengan SparkSession; banyak fitur SparkContext masih tersedia dan digunakan di Spark 2.0 dan yang lebih baru. SparkSession secara internal membuat SparkConfig dan SparkContext dengan konfigurasi yang disediakan bersamanya.

Kami dapat membuat SparkSession sebanyak yang Anda inginkan dalam aplikasi PySpark menggunakan SparkSession.builder() atau SparkSession.newSession(). Banyak objek sesi Spark diperlukan saat Anda ingin memisahkan tabel PySpark (entitas relasional) secara logis.

Membuat SparkSession

dari pyspark.sql impor SparkSession spark = SparkSession.builder.appName(“Practice”).getOrCreate() spark

Modul dan Paket Pyspark

Modul dan Paket Pyspark

PySpark RDD — Dataset Terdistribusi yang Tangguh:

“Resilient Distributed Datasets (RDD) adalah abstraksi memori terdistribusi yang membantu programmer untuk melakukan komputasi dalam memori pada cluster besar.” Salah satu keuntungan penting dari RDD adalah toleransi kesalahan, yang berarti jika terjadi kegagalan maka akan pulih secara otomatis. RDD menjadi tidak berubah saat dibuat yaitu, tidak dapat diubah setelah dibuat.

RDD membagi data menjadi bagian-bagian yang lebih kecil berdasarkan sebuah kunci. Manfaat membagi data menjadi potongan-potongan yang lebih kecil adalah jika satu node pelaksana gagal, node lain akan tetap memproses data. Sehingga dapat pulih dengan cepat dari masalah apa pun karena potongan data yang sama direplikasi di beberapa node pelaksana. RDD menyediakan fungsionalitas untuk melakukan perhitungan fungsional terhadap dataset dengan sangat cepat dengan mengikat beberapa node.

Pyspark Untuk Pemula| Bagian-4: Pyspark RDD

Bingkai Data Pyspark:

DataFrame adalah kumpulan data terdistribusi yang diatur ke dalam kolom bernama. Ini secara konseptual setara dengan tabel dalam database relasional atau bingkai data di R/Python, tetapi dengan optimasi yang lebih kaya di bawah tenda. DataFrames dapat dibangun dari beragam sumber seperti file data terstruktur, tabel di Hive, database eksternal, atau RDD yang ada.

Karena eksekusi paralel pada semua inti di beberapa mesin, PySpark menjalankan operasi lebih cepat daripada panda. Dengan kata lain, pandas DataFrames menjalankan operasi pada satu node, sedangkan PySpark berjalan pada banyak mesin.

Pyspark Untuk Pemula| Bagian-2: DataFrame Pyspark

SQL pyspark:

PySpark SQL adalah modul di Spark yang mengintegrasikan pemrosesan relasional dengan API pemrograman fungsional Spark. Kita dapat mengekstrak data dengan menggunakan bahasa query SQL. Kita bisa menggunakan query yang sama seperti bahasa SQL.

Dengan kata lain, Spark SQL menghadirkan kueri RAW SQL asli di Spark, artinya Anda dapat menjalankan ANSI SQL tradisional di Spark Dataframe, di bagian atas dari tutorial PySpark ini, Anda akan belajar secara detail tentang menggunakan SQL pilih, di mana, dikelompokkan berdasarkan, bergabung , serikat pekerja dll

PySpark SQL akan mudah digunakan, di mana Anda dapat memperluas batasan pemrosesan data relasional tradisional. Spark juga mendukung Bahasa Kueri Hive, tetapi ada batasan database Hive. Spark SQL dikembangkan untuk menghilangkan kelemahan database Hive.

Pyspark MLlib:

Apache Spark menawarkan API Pembelajaran Mesin yang disebut MLlib. PySpark memiliki API pembelajaran mesin ini dengan Python juga.

Ini mendukung berbagai jenis algoritma, yang disebutkan di bawah ini

— mllib.clustering
— mllib.klasifikasi
— mllib.fpm
— mllib.linalg
— mllib.rekomendasi
— mllib.regression

Pyspark MLlib | Klasifikasi menggunakan Pyspark ML

Bingkai Grafik Pyspark:

PySpark GraphFrames diperkenalkan dalam versi Spark 3.0 untuk mendukung Grafik pada DataFrame. Sebelum 3.0, Spark memiliki pustaka GraphX, yang idealnya berjalan di RDD dan kehilangan semua kemampuan Bingkai Data.

GraphFrames adalah paket untuk Apache Spark yang menyediakan Grafik berbasis DataFrame. Ini menyediakan API tingkat tinggi di Scala, Java, dan Python. Ini bertujuan untuk menyediakan fungsionalitas GraphX ​​dan fungsionalitas yang diperluas dengan memanfaatkan Spark DataFrames. Fungsionalitas yang diperluas ini mencakup pencarian motif, serialisasi berbasis DataFrame, dan kueri grafik yang sangat ekspresif.

Streaming Pyspark:

PySpark Streaming adalah sistem pemrosesan streaming yang dapat diskalakan, throughput tinggi, dan toleran terhadap kesalahan yang mendukung beban kerja batch dan streaming. Ini digunakan untuk memproses data waktu nyata dari sumber seperti folder sistem file, soket TCP, S3, Kafka, Flume, Twitter, dan Amazon Kinesis untuk beberapa nama. Data yang diproses dapat didorong ke database, Kafka, dasbor langsung, dll.

Aliran Percikan

Ini adalah bagian teoretis untuk Pyspark

Buka tautan konten yang disediakan di atas untuk memahami dan menerapkan Pyspark.

Selamat Coding…

PySpark For Beginners awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jeffrey Hayes