Megosztás a következőn keresztül:


Lakeflow Spark Deklaratív folyamatok – Python nyelvi referencia

Ez a szakasz a Lakeflow Spark Deklaratív folyamatok (SDP) Python programozási felületének részleteit tartalmazza.

pipelines modul áttekintése

A Lakeflow Spark deklaratív folyamatok Python-függvényei a pyspark.pipelines modulban vannak definiálva. Ezek dp néven importálhatók. A Python API-val implementált folyamatoknak importálnia kell ezt a modult:

from pyspark import pipelines as dp

Megjegyzés:

A folyamatmodul csak egy folyamat kontextusában érhető el. Csővezetéken kívül futó Pythonban nem érhető el. További információ a folyamatkód szerkesztéséről: ETL-folyamatok fejlesztése és hibakeresése a Lakeflow Pipelines-szerkesztővel.

Apache Spark™ csővezetékek

Az Apache Spark deklaratív folyamatokat tartalmaz a Spark 4.1-ben, amely a pyspark.pipelines modulon keresztül érhető el. A Databricks Runtime további API-kkal és integrációkkal bővíti ezeket a nyílt forráskódú képességeket a felügyelt éles használathoz.

A nyílt forráskódú pipelines modullal írt kód módosítás nélkül fut az Azure Databricksben. A következő funkciók nem részei az Apache Sparknak:

  • dp.create_auto_cdc_flow
  • dp.create_auto_cdc_from_snapshot_flow
  • @dp.expect(...)
  • @dp.temporary_view

A pipelines modult korábban az Azure Databricksben hívták dlt meg. A részletekért és az Apache Spark különbségeiről további információt a Mi történt @dlt? című témakörben talál.

Függvények adathalmaz-definíciókhoz

A csővezetékek Python-dekorátorokat használnak adathalmazok, például materializált nézetek és folyamatos táblák definiálására. Az adathalmazok definiálásához lásd a Functionst.

API-referencia

A Python-folyamatok szempontjai

A folyamatok Lakeflow Spark Deklaratív folyamatok (SDP) Python-felülettel történő implementálása során az alábbiakat érdemes figyelembe venni:

  • Az SDP kiértékeli azt a kódot, amely többször definiál egy folyamatot a tervezés és a folyamatfuttatások során. Az adathalmazokat definiáló Python-függvényeknek csak a tábla vagy nézet definiálásához szükséges kódot kell tartalmazniuk. Az adathalmaz-definíciókban szereplő tetszőleges Python-logika váratlan viselkedéshez vezethet.
  • Ne próbáljon egyéni monitorozási logikát implementálni az adathalmaz-definíciókban. Lásd: Folyamatok egyéni monitorozásának definiálása eseményhookokkal.
  • Az adathalmaz meghatározásához használt függvénynek Spark DataFrame-et kell visszaadnia. Ne tartalmazzon olyan logikát az adathalmaz-definíciókban, amelyek nem kapcsolódnak visszaadott DataFrame-hez.
  • Soha ne használjon olyan metódusokat, amelyek a folyamatadatkészlet kódjának részeként fájlokat vagy táblákat mentenek vagy írnak.

Példák olyan Apache Spark-műveletekre, amelyeket soha nem szabad használni a folyamatkódban:

  • collect()
  • count()
  • toPandas()
  • save()
  • saveAsTable()
  • start()
  • toTable()

Mi történt?@dlt

Az Azure Databricks korábban a modult használta a dlt folyamatfunkciók támogatásához. A dlt modul helyébe a pyspark.pipelines modul lépett. Továbbra is használhatja dlt, de a Databricks a használatát pipelinesjavasolja.

Különbségek a DLT, az SDP és az Apache Spark között

Az alábbi táblázat a DLT, a Lakeflow Spark Deklaratív folyamatok és az Apache Spark Deklaratív folyamatok szintaxisa és funkciói közötti különbségeket mutatja be.

Area DLT szintaxis SDP-szintaxis (Lakeflow és Apache, ahol alkalmazható) Elérhető az Apache Sparkban
Importálások import dlt from pyspark import pipelines (as dpopcionálisan) Igen
Adatfolyam tábla @dlt.table streamelési adatkerettel @dp.table Igen
Materializált nézet @dlt.table kötegelt adatkerettel @dp.materialized_view Igen
View @dlt.view @dp.temporary_view Igen
Hozzáfűzési munkafolyamat @dlt.append_flow @dp.append_flow Igen
SQL – adatfolyamkezelés CREATE STREAMING TABLE ... CREATE STREAMING TABLE ... Igen
SQL – materializált CREATE MATERIALIZED VIEW ... CREATE MATERIALIZED VIEW ... Igen
SQL – folyamat CREATE FLOW ... CREATE FLOW ... Igen
Eseménynapló spark.read.table("event_log") spark.read.table("event_log") Nem
Módosítások alkalmazása (CDC) dlt.apply_changes(...) dp.create_auto_cdc_flow(...) Nem
Expectations @dlt.expect(...) dp.expect(...) Nem
Folyamatos üzemmód Folyamatkonfiguráció folyamatos eseményindítóval (ugyanaz) Nem
Sink @dlt.create_sink(...) dp.create_sink(...) Igen