Data Wrangling with Spark

Dalam tahap ini kita akan belajar tentang:

  • Wrangling Data
  • Functional Programming
  • Read in and write out data
  • Spark environment and Spark APIs
  • RDD API

Functional Programming

Spark ditulis dengan menggunakan Scala yang menganut Functional Programming. Namun terdapat juga API (Application Programming Interfaces) dengan bahasa Java, R, Python. Nah kalau di Phython ini nanti kita akan menggunakan PySpark.

Kenapa Spark menggunakan Functional Programming?

Karena sempurna untuk distributed system

Distributed System

The PySpark API uses the py4j library to make calls directly to the Java Virtual Machine. https://en.wikipedia.org/wiki/Java_virtual_machine

The PySpark API allows you to write programs in Spark and ensures that your code uses functional programming practices. Underneath the hood, the Python code uses py4j to make calls to the Java Virtual Machine (JVM).

DAG (Directed Acyclical Graph)

Maps dan Lambda Functions

Untuk lebih lanjut tentang teori dan asal dari lambda functions, bisa dicek di sini ya: http://palmstroem.blogspot.com/2012/05/lambda-calculus-for-absolute-dummies.html

Data Formats

Format yang didukung, yaitu:

  • CSV
  • JSON
  • HTML
  • XML

Distributed Data Stores

Hadoop memiliki HDFS (Hadoop Distributed File System) untuk menyimpan data. HDFS membagi file menjadi 64 atau 128 MB Blok dan mereplikasikan blok-blok ini ke cluster. Data disimpan dengan cara fault tolerant, dan dapat diakses dalam chunk.

Jika tidak dapat mengelola cluster sendiri, maka kita bisa menggunakan layanan yang sudah ada, seperti misalnya Amazon S3 (Simple Storage Service).

Spark Program

Spark SQL

Ini ada resource yang berguna untuk mempelajari Spark SQL:

RDD

RDDs are a low-level abstraction of the data. In the first version of Spark, you worked directly with RDDs. You can think of RDDs as long lists distributed across various machines. You can still use RDDs as part of your Spark code although data frames and SQL are easier. This course won’t go into the details of RDD syntax, but you can find some further explanation of the difference between RDDs and DataFrames in Databricks’ A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets blog post.

Here is a link to the Spark documentation’s RDD programming guide.NEXT

Masih berlanjut tulisannya, yaa.. Kursus online nya belum selesai di-tonton soalnya..

Link kursus online Udacity: https://www.udacity.com/course/learn-spark-at-udacity–ud2002

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top