Referensi bahasa Python untuk Lakeflow Pipelines

Antarmuka Python untuk pipeline Lakeflow didefinisikan dalam modul pyspark.pipelines, diimpor sebagai dp.

Modul ini menyediakan dekorator dan fungsi untuk mendefinisikan dataset, aliran, sink, dan ekspektasi kualitas data. Pipeline serverless menjalankan definisi ini tanpa mengharuskan Anda mengonfigurasi klaster.

pipelines gambaran umum modul

Fungsi Python untuk pipeline Lakeflow didefinisikan di dalam modul pyspark.pipelines (diimpor sebagai dp). Alur Anda yang diimplementasikan dengan Python API harus mengimpor modul ini:

from pyspark import pipelines as dp

Nota

Sebagian besar modul pipelines hanya tersedia dalam konteks pipeline. Untuk informasi selengkapnya tentang mengedit kode alur, lihat Mengembangkan dan men-debug alur ETL dengan Editor Alur Lakeflow.

Anda juga dapat menerapkan @materialized_view dan @table di luar pipeline, di notebook pada komputasi umum tanpa server, untuk mendefinisikan tampilan materialisasi mandiri atau tabel streaming. Lihat Mendefinisikan tabel dengan dekorator pipeline.

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_flow
  • dp.create_auto_cdc_from_snapshot_flow
  • @dp.expect(...)

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)

Persyaratan pengkodian untuk alur Python

Berikut adalah persyaratan penting saat Anda mengimplementasikan pipeline dengan antarmuka Python:

  • Sebuah pipeline mengevaluasi kode sumbernya beberapa kali selama perencanaan dan eksekusi. 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 alur DLT, Lakeflow, dan Alur Deklaratif Apache Spark

Tabel berikut menunjukkan perbedaan sintaksis dan fungsionalitas antara alur DLT, Lakeflow, dan Alur Deklaratif Apache Spark.

Untuk perbandingan pada tingkat fitur mengenai apa yang dimiliki bersama oleh pipeline Lakeflow dan apa yang ditambahkan pada Apache Spark Declarative Pipelines, lihat Pipeline Deklaratif Apache Spark.

Untuk pemetaan per properti dari konfigurasi pipeline ke spesifikasi proyek SDP, lihat Referensi properti pipeline.

Nota

Dalam dokumentasi Databricks, produk Databricks disebut Lakeflow pipelines, dan proyek Apache Spark yang diperluas oleh produk tersebut adalah Apache Spark™ Declarative Pipelines (SDP). Keduanya interoperabel tetapi berbeda dalam fiturnya. Misalnya, AUTO CDC API hanya tersedia di pipeline Lakeflow.

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
Alur pembaruan Unavailable @dp.update_flow Tidak.
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
UntukSetiapBatch sink Unavailable @dp.foreach_batch_sink(...) Tidak.