다음을 통해 공유


Lakeflow Spark 선언적 파이프라인 Python 언어 참조

이 섹션에는 SDP(Lakeflow Spark 선언적 파이프라인) Python 프로그래밍 인터페이스에 대한 세부 정보가 있습니다.

pipelines 모듈 개요

Lakeflow Spark 선언형 파이프라인 Python 함수는 pyspark.pipelines 모듈에서 정의되며, dp로 가져옵니다. Python API를 사용하여 구현된 파이프라인은 다음 모듈을 가져와야 합니다.

from pyspark import pipelines as dp

비고

파이프라인 모듈은 파이프라인의 컨텍스트에서만 사용할 수 있습니다. 파이프라인 외부에서 실행되는 Python에서는 사용할 수 없습니다. 파이프라인 코드 편집에 대한 자세한 내용은 Lakeflow 파이프라인 편집기를 사용하여 ETL 파이프라인 개발 및 디버그를 참조하세요.

Apache Spark™ 파이프라인

Apache Spark에는 Spark 4.1부터 모듈을 통해 사용할 수 있는 선언적 파이프라인pyspark.pipelines 포함되어 있습니다. Databricks 런타임은 관리되는 프로덕션 사용을 위해 추가 API 및 통합을 통해 이러한 오픈 소스 기능을 확장합니다.

오픈 소스 pipelines 모듈로 작성된 코드는 Azure Databricks에서 수정 없이 실행됩니다. 다음 기능은 Apache Spark의 일부가 아닙니다.

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

pipelines 모듈은 이전에 Azure Databricks에서 dlt로 불렸습니다. Apache Spark와의 차이점에 대한 자세한 내용과 더 많은 정보를 보려면 무슨 일이 있었는지@dlt를 참조하세요.

데이터 세트 정의에 대한 함수

파이프라인은 구체화된 뷰 및 스트리밍 테이블과 같은 데이터 세트를 정의하기 위해 Python 데코레이터를 사용합니다. 데이터 세트를 정의하려면 함수를 참조하세요.

API 참고 자료

Python 파이프라인에 대한 고려 사항

다음은 SDP(Lakeflow Spark 선언적 파이프라인) Python 인터페이스를 사용하여 파이프라인을 구현할 때 중요한 고려 사항입니다.

  • SDP는 계획 및 파이프라인 실행 중에 파이프라인을 여러 번 정의하는 코드를 평가합니다. 데이터 세트를 정의하는 Python 함수는 테이블 또는 뷰를 정의하는 데 필요한 코드만 포함해야 합니다. 데이터 세트 정의에 포함된 임의 Python 논리는 예기치 않은 동작으로 이어질 수 있습니다.
  • 데이터 세트 정의에서 사용자 지정 모니터링 논리를 구현하지 마세요. 이벤트 후크를 사용하여 파이프라인의 사용자 지정 모니터링 정의를 참조하세요.
  • 데이터 세트를 정의하는 데 사용되는 함수는 Spark DataFrame을 반환해야 합니다. 반환된 DataFrame과 관련이 없는 논리를 데이터 세트 정의에 포함하지 마세요.
  • 파이프라인 데이터 세트 코드의 일부로 파일 또는 테이블에 저장하거나 쓰는 메서드를 사용하지 마세요.

파이프라인 코드에서 사용해서는 안 되는 Apache Spark 작업의 예:

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

무슨 일이 일어났는가 @dlt?

이전에 Azure Databricks는 이 모듈을 dlt 사용하여 파이프라인 기능을 지원했습니다. dlt 모듈이 pyspark.pipelines 모듈로 대체되었습니다. 여전히 dlt을 사용할 수 있지만, Databricks는 pipelines을 사용하는 것이 좋습니다.

DLT, SDP 및 Apache Spark의 차이점

다음 표에서는 DLT, Lakeflow Spark 선언적 파이프라인 및 Apache Spark 선언적 파이프라인 간의 구문과 기능의 차이점을 보여 줍니다.

Area DLT 구문 SDP 구문(Lakeflow 및 Apache, 해당하는 경우) Apache Spark에서 사용 가능
가져오기 import dlt from pyspark import pipelines (as dp선택 사항) Yes
스트리밍 테이블 @dlt.table 스트리밍 데이터 프레임을 사용하여 @dp.table Yes
구체화된 뷰 @dlt.table 일괄 데이터 프레임과 함께 @dp.materialized_view Yes
보기 @dlt.view @dp.temporary_view Yes
흐름 추가하기 @dlt.append_flow @dp.append_flow Yes
SQL – 스트리밍 CREATE STREAMING TABLE ... CREATE STREAMING TABLE ... Yes
SQL – 머티리얼라이즈드 CREATE MATERIALIZED VIEW ... CREATE MATERIALIZED VIEW ... Yes
SQL – 흐름 CREATE FLOW ... CREATE FLOW ... Yes
이벤트 로그 spark.read.table("event_log") spark.read.table("event_log") 아니오
변경 내용 적용(CDC) dlt.apply_changes(...) dp.create_auto_cdc_flow(...) 아니오
Expectations @dlt.expect(...) dp.expect(...) 아니오
연속 모드 연속 트리거를 사용하여 파이프라인 구성 (동일) 아니오
싱크대 @dlt.create_sink(...) dp.create_sink(...) Yes