Apache Spark 3.1.1 - Lebih Mudah, Lebih Pintar, Lebih Cepat

#

Databrick mengumumkan rilis Apache Spark 3.1.1. Rilis ini diklaim membawa peningkatan dalam hal kemudahan, kecepatan dan kinerja. 

Apache Spark Dengan Fitur Baru

Fitur yang tercakup dalam rilis kali ini di antaranya adalah: 

  1. Usabilitas PySpark, yang meliputi:
    • Dukungan python typing : Melengkapi PySpark dengan Python type hints yang sangat memudahkan para developer yang menggunakan IDE dan notebook dengan fitur autocompletion. Developer IDE juga dapat meningkatkan produktivitas mereka dengan memanfaatkan dukungan deteksi static type error dari fitur ini.
    • Dukungan yang lengkap untuk manajemen Dependency PySpark. Sebelumnya dependency support untuk PySpark hanya terbatas pada YARN saja. Dalam versi ini sistem manajemen package seperti Conda, PEX, dan virtualenv dapat bekerja dalam tipe cluster apapun.
    • Pilihan baru untuk instalasi PyPI. Sebelumnya instalasi dengan pip hanya terbatas untuk Hadoop 2 saja, sedangkan Hadoop 3 disupport melalui channel selain PyPi. Saat ini seluruh versi sudah dapat diinstall dengan PyPI. 
    • Dokumentasi yang lebih baik. Dokumentasi PySpark sebelumnya sulit digunakan dan hanya menyertakan referensi API saja. Dalam rilis ini dokumentasi telah didesain ulang sepenuhnya dengan klasifikasi terperinci dan hierarki yang mudah dinavigasi.
  2. ANSI SQL compliance:
    • Mode dialek ANSI telah diperkenalkan sejak rilis Spark 3.0. Behavior dalam mode ANSI telah selaras dengan style ANSI SQL. Saat ini mode dialek ANSI masih dalam tahap pengembangan dan diharapkan akan stabil pada rilis berikutnya.
    • Berbagai fitur SQL dan fungsi-fungsi built-in juga ditambahkan. Jumlah operator/fungsi built-in yang disupport saat ini mencapai 350.
    • Penggabungan sintaks CREATE TABLE SQL. Sebelumnya Spark menggunakan dua jenis sintaks untuk CREATE TABLE, dengan default table yang bergantung pada konfigurasi spark.sql.legacy.createHiveTableByDefault. Saat ini default format untuk CREATE TABLE adalah delta.
  3. Peningkatan Query optimization
    Catalyst bertugas melakukan optimasi terhadap hampir semua aplikasi Spark. Dalam rilis ini tercakup perbaikan optimasi, diantaranya :
    • Predicate pushdown untuk JSON, Avro, dan nested fields pada ORC. Operasi filter dapat di-push melalui operator EXPAND.
    • Shuffle removal, subexpression elimination dan nested field pruning
    • Peningkatan fitur Shuffle hash join (SHJ). SHJ saat ini dapat mendukung semua jenis join
  4. Dukungan structured streaming pada History Server
    • Untuk memudahkan proses debugging dan monitoring, History Server saat ini telah mendukung aplikasi structured streaming. Live UI support juga ditingkatkan dengan menambahkan metric untuk status, watermark gap, dan berbagai metric custom lainnya.
    • Penambahan API table Streaming untuk membaca dan menulis DataFrame streaming ke table.
    • Dua jenis support baru untuk Stream-stream Join, yaitu full outer dan left semi. Inner, left outer, dan right outer stream-stream-join telah disupport sejak versi sebelumnya.

Selain penambahan fitur-fitur baru pada Apache Spark, rilis ini juga berfokus pada kegunaan, stabilitas, dan penyempurnaan, serta menyelesaikan sekitar 1.500 tiket. Semua perbaikan dan peningkatan tersebut melibatkan kerja sama lebih dari 200 kontributor.

Untuk informasi yang lebih detail mengenai rilis Apache Spark 3.1.1 dapat dilihat pada release note.

Sumber Artikel:
Introducing Apache Spark 3.1

Contributor