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))