📊 Databricks Update: Baca File Excel Secara Native (Tanpa Library Tambahan)

Status Fitur: Public Preview (Beta) - Databricks Runtime 17.1+
Tanggal Berita: 3 Desember 2025

Azure Databricks meluncurkan dukungan bawaan (native) untuk membaca, mem-parsing, dan melakukan query pada file Excel (.xls dan .xlsx). Fitur ini menghilangkan kebutuhan akan library eksternal yang selama ini merepotkan data engineer.

🚧 Problem Statement: Gesekan Format Excel di Big Data
File Excel adalah standar di dunia bisnis, namun menjadi tantangan di ekosistem Big Data (Spark).

🧩 Ketergantungan Pihak Ketiga: Sebelumnya, membaca Excel di Databricks memerlukan instalasi library eksternal (seperti spark-excel dari Crealytics) atau konversi manual yang rentan kesalahan ke format CSV/Parquet.

🐢 Proses Manual: Data engineer seringkali harus menulis skrip Python (Pandas) yang tidak terskala (scalable) atau melakukan pra-pemrosesan di luar platform hanya untuk mendapatkan data dari spreadsheet ke dalam data lake.

🛠️ Solusi: Built-in Excel Format Support
Databricks kini menyediakan parser Excel bawaan yang terintegrasi langsung dengan Databricks SQL dan Spark APIs.

⚡ Integrasi Mulus: Fitur ini mendukung ingestion dari unggahan lokal maupun cloud storage. Ia secara otomatis menginferensi skema dan tipe data, serta mampu menangani file .xls (lama) maupun .xlsx (baru) tanpa konfigurasi rumit.

🌊 Batch & Streaming: Tidak hanya untuk pembacaan statis, parser ini juga mendukung Auto Loader untuk streaming workload, memungkinkan data Excel yang baru masuk di folder langsung diproses secara real-time.

⚡ Fitur Utama & Kapabilitas
Parser baru ini menawarkan fleksibilitas tinggi dalam cara data diekstraksi.

🎯 Seleksi Granular: Anda tidak harus membaca seluruh file. Fitur ini mendukung pembacaan sheet tertentu atau bahkan rentang sel spesifik (misalnya hanya membaca A2:D10).

🧮 Formula & Merged Cells: Parser akan mengambil nilai hasil evaluasi dari rumus Excel (bukan mentahan rumusnya). Untuk sel yang digabung (merged cells), nilai akan diambil dari sel kiri-atas, sementara sel sisanya diisi NULL.

⚙️ How to Use: Implementasi Teknis
Berikut adalah cara menggunakan fitur ini dengan Python dan SQL.

🐍 Spark Batch (Python): Gunakan format excel. Opsi headerRows menentukan baris judul, dan dataAddress menentukan lokasi data.

Python

df = (spark.read
.option("headerRows", 1)
.option("dataAddress", "Sheet1!A1:E10")
.excel("/path/to/file.xlsx"))
🗃️ Databricks SQL: Gunakan fungsi read_files.

SQL

CREATE TABLE my_table AS
SELECT * FROM read_files(
"/path/to/file.xlsx",
format => "excel",
headerRows => 1,
dataAddress => "'Sheet1'!A2:D10",
schemaEvolutionMode => "none"
);
🌊 Streaming (Auto Loader): Set format ke cloudFiles dan tipe format ke excel. Catatan: Schema Evolution tidak didukung di mode ini.

Python

df = (spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "excel")
.option("headerRows", 1)
.option("cloudFiles.schemaEvolutionMode", "none")
.load("/path/to/directory"))
⚠️ Batasan (Limitations)
Perhatikan beberapa keterbatasan saat menggunakan fitur beta ini.

🔒 Keamanan: File Excel yang diproteksi password tidak didukung.

❌ Makro: Eksekusi makro pada file .xlsm tidak didukung.

📉 Header: Hanya mendukung satu baris header.

🗝️ Key Takeaways
🛠️ No More Jars: Ucapkan selamat tinggal pada pengelolaan library JAR pihak ketiga hanya untuk membaca Excel.

📍 Presisi Data: Kemampuan dataAddress memungkinkan ekstraksi data yang sangat spesifik dari spreadsheet yang kompleks atau tidak terstruktur (misal: ada banyak tabel dalam satu sheet).

🚀 Streaming Ready: Dukungan Auto Loader membuka peluang untuk otomatisasi pipeline data dari departemen bisnis (Finance/HR) yang sering menggunakan Excel.

💬 Interaksi Pembaca
Seberapa sering pipeline data Anda gagal karena format Excel yang berubah atau library yang tidak kompatibel? Apakah fitur native ini cukup untuk membuat Anda memindahkan proses ETL Excel ke Databricks sepenuhnya?

Sumber:
https://learn.microsoft.com/en-us/azure/databricks/query/formats/excel

#AzureDatabricks #DataEngineering #ExcelIntegration #ApacheSpark #ETL #AutoLoader #BigData #SQL #Python #DataIngestion

Leave a Comment