Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Bagian ini memiliki detail untuk antarmuka pemrograman Python Lakeflow Spark Declarative Pipelines (SDP).
- Untuk informasi konseptual dan gambaran umum penggunaan Python untuk alur, lihat Mengembangkan kode alur dengan Python.
- Untuk referensi SQL, lihat referensi bahasa Pipeline SQL.
- Untuk detail khusus untuk mengonfigurasi Auto Loader, lihat Apa itu Auto Loader?.
pipelines gambaran umum modul
Fungsi Python Alur Deklaratif Lakeflow Spark didefinisikan dalam pyspark.pipelines modul (diimpor sebagai dp). Alur Anda yang diimplementasikan dengan Python API harus mengimpor modul ini:
from pyspark import pipelines as dp
Nota
Modul pipeline hanya tersedia dalam konteks pipeline. Fitur ini tidak tersedia di Python yang berjalan di luar konteks pipeline. Untuk informasi selengkapnya tentang mengedit kode alur, lihat Mengembangkan dan men-debug alur ETL dengan Editor Alur Lakeflow.
Alur Apache Spark™
Apache Spark mencakup alur deklaratif yang dimulai di Spark 4.1, tersedia melalui pyspark.pipelines modul. Databricks Runtime memperluas kemampuan sumber terbuka ini dengan API dan integrasi tambahan untuk penggunaan produksi terkelola.
Kode yang ditulis dengan modul sumber pipelines terbuka berjalan tanpa modifikasi pada Azure Databricks. Fitur berikut bukan bagian dari Apache Spark:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
pipelines Modul sebelumnya dipanggil dlt di Azure Databricks. Untuk detail lebih lanjut, dan informasi selengkapnya tentang perbedaan dari Apache Spark, lihat Apa yang terjadi dengan @dlt?.
Fungsi untuk definisi himpunan data
Pipeline menggunakan dekorator Python untuk menentukan himpunan data seperti tampilan materialisasi dan tabel streaming. Lihat Fungsi untuk menentukan himpunan data.
Referensi Antarmuka Pemrograman Aplikasi (API)
- append_flow (fungsi menambahkan aliran)
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- membuat_saluran
- buat_tabel_streaming
- Harapan
- materialized_view
- table
- temporary_view
Pertimbangan untuk alur Python
Berikut ini adalah pertimbangan penting saat Anda menerapkan alur dengan antarmuka Python Lakeflow Spark Declarative Pipelines (SDP):
- SDP mengevaluasi kode yang menentukan alur beberapa kali selama perencanaan dan eksekusi alur. Fungsi Python yang menentukan himpunan data hanya boleh menyertakan kode yang diperlukan untuk menentukan tabel atau tampilan. Logika Python arbitrer yang disertakan dalam definisi himpunan data dapat menyebabkan perilaku yang tidak terduga.
- Jangan mencoba menerapkan logika pemantauan kustom dalam definisi himpunan data Anda. Lihat Menentukan pemantauan kustom alur dengan kait peristiwa.
- Fungsi yang digunakan untuk menentukan himpunan data harus mengembalikan Spark DataFrame. Jangan sertakan logika dalam definisi himpunan data Anda yang tidak terkait dengan DataFrame yang dikembalikan.
- Jangan pernah menggunakan metode yang menyimpan atau menulis ke file atau tabel sebagai bagian dari kode himpunan data alur Anda.
Contoh operasi Apache Spark yang tidak boleh digunakan dalam kode alur:
collect()count()toPandas()save()saveAsTable()start()toTable()
Apa yang terjadi dengan @dlt?
Sebelumnya, Azure Databricks menggunakan dlt modul untuk mendukung fungsionalitas alur. Modul dlt telah digantikan oleh pyspark.pipelines modul. Anda mungkin masih menggunakan dlt, tetapi Databricks merekomendasikan penggunaan pipelines.
Perbedaan antara DLT, SDP, dan Apache Spark
Tabel berikut menunjukkan perbedaan sintaksis dan fungsionalitas antara DLT, Alur Deklaratif Lakeflow Spark, dan Alur Deklaratif Apache Spark.
| Area | Sintaks DLT | Sintaks SDP (Lakeflow dan Apache, jika berlaku) | Tersedia di Apache Spark |
|---|---|---|---|
| Impor | import dlt |
from pyspark import pipelines (as dp, opsional) |
Yes |
| Tabel streaming |
@dlt.table dengan dataframe streaming |
@dp.table |
Yes |
| Tampilan Terwujud |
@dlt.table dengan kerangka data batch |
@dp.materialized_view |
Yes |
| Tampilkan | @dlt.view |
@dp.temporary_view |
Yes |
| Tambahkan alur | @dlt.append_flow |
@dp.append_flow |
Yes |
| SQL – streaming | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Yes |
| SQL – terwujud | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Yes |
| SQL – aliran proses | CREATE FLOW ... |
CREATE FLOW ... |
Yes |
| Catatan peristiwa | spark.read.table("event_log") |
spark.read.table("event_log") |
Tidak. |
| Terapkan Perubahan (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Tidak. |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Tidak. |
| Mode berkelanjutan | Konfigurasi pipa dengan pemicu berkesinambungan | (sama) | Tidak. |
| Wastafel | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |