tutorial spark pyspark
Big Data, Python

Tutorial Spark dengan PySpark

Spark merupakan framework big data yang terkenal untuk pemrosesan data secara terdistribusi. Framework Spark dapat dijalankan di banyak bahasa pemrograman seperti Java, Scala, Python dan R

Spark dapat dijalankan di satu mesin atau cluster secara terdistribusi. Dilansir dari halaman webnya, Spark menawarkan banyak fitur seperti Batch/streaming data, SQL analytics, Data science at scale dan Machine learning

Spark sangat cocok digunakan untuk pemrosesan data yang besar karena mampu berjalan diatas sistem terdistribusi

Pada tutorial ini akan fokus untuk melakukan analsis data besar yang disimulasikan dengan mini dataset. Tutorial ini akan menggunakan Spark diatas Python yang dikenal dengan PySpark. Anda bisa mengimplementasikan ini di google colab atau environment Python di laptop anda

Sebagian besar dari kita yang fokus ke analisis data dengan Python tentu sudah familiar dengan Library Pandas. Pandas adalah library Python yang sangat powerful untuk analisis data. Tetapi jika data yang ingin diolah ukurannya besar library ini tidak mampu.

Spark digunakan untuk melakukan analisis dan agregasi data yang nantinya hasil agregasi dapat dikonversi ke Pandas DataFrame

Contents

Install PySpark

Kita bisa dengan mudah install PySpark dengan perintah

pip install pyspark

Kita bisa install di laptop atau google colab karena spark mendukung juga untuk diinstal di 1 mesin / node

Hello PySpark

Langkah pertama adalah memanggil library PySpark dan membuat spark session yang kita buat namanya hellospark

import pyspark
from pyspark.sql import SparkSession

spark = SparkSession.builder\
        .appName("hellowspark")\
        .getOrCreate()

Download terlebih dulu dataset titanic

!wget https://raw.githubusercontent.com/faqihhamami/events/main/titanic.csv

Kita akan membaca file CSV dari dataset titanic yang sudah diunduh dengan perintah spark.read.csv

df = spark.read.csv("titanic.csv", header=True, inferSchema=True)

Selain itu kita juga menggunakan parameter header karena dataset yang dibaca sudah mempunyai header parameter inferSchema untuk mendefiniskan tipe data kolom yang dibaca dari jenis datanya

Jika dicetak maka berikut nama kolom dan tipe datanya

Sedangkan untuk melihat jumlah baris dan kolomnya gunakan perintah

# show dataset shape 
print("jumlah baris : ", df.count())
print("jumlah kolom : ", len(df.columns))

Akses Kolom baris

Untuk mengakses baris gunakan show() sepert ini

df.show()

Untuk mengakses baris gunakan perintah select misal hanya ingin menampilkan kolom Name, Sex, Age dan Fare

df.select("Name", "Sex", "Age", "Fare").show(5)

Kita juga bisa melihat nilai unik dari suatu kolom misalnya dari jenis kelamin

df.select("Sex").distinct().show()

Filter

filter digunakan untuk menampilkan data sesuai dengan kondisi. Misalnya ingin menampilkan penumpang yang umurnya di atas 77 tahun

Atau ingin menampilkan penumpang yang mempunyai sibsp lebih dari 7 dan parch lebih dari 1

Agregasi Data

Kita juga bisa melakukan agregasi data dengan PySpark seperti melihat jumlah penumpang berdasarkan jenis kelaminnya

from pyspark.sql import functions as F

# melihat jumlah penumpang yang survived dan tidak
df.groupBy("Sex").agg(F.count("Sex")).show()

Atau misal ingin melihat total fare berdasarkan kelas penumpang

Convet to Pandas

Gunakan fungsi toPandas() untuk merubah PySpark DataFrame ke bentuk Pandas DataFrame

Misal ingin menyimpan total Fare berdasarkan kelas penumpang

FareByPclass = df.groupBy("Pclass").agg(F.sum("Fare"))
df_pandas = FareByPclass.toPandas()

print(type(df_pandas))

Leave a Reply

Your email address will not be published. Required fields are marked *