Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta seção tem detalhes para a interface de programação Python Lakeflow Spark Declarative Pipelines (SDP).
- Para obter informações conceituais e uma visão geral do uso do Python para pipelines, consulte Desenvolver código de pipeline com Python.
- Para referência SQL, consulte a referência da linguagem Pipeline SQL.
- Para obter detalhes específicos sobre a configuração do Auto Loader, consulte O que é o Auto Loader?.
pipelines Visão geral do módulo
As funções Python do Lakeflow Spark Declarative Pipelines são definidas no módulo pyspark.pipelines (importado como dp). Seus pipelines implementados com a API Python devem importar este módulo:
from pyspark import pipelines as dp
Observação
O módulo pipelines só está disponível no contexto de um pipeline. Ele não está disponível quando executado em Python fora de pipelines. Para obter mais informações sobre como editar código de pipeline, consulte Desenvolva e depure pipelines ETL com o Lakeflow Pipelines Editor.
Pipelines Apache Spark™
O Apache Spark inclui pipelines declarativos começando no Spark 4.1, disponíveis através do pyspark.pipelines módulo. O Databricks Runtime estende esses recursos de código aberto com APIs e integrações adicionais para uso gerenciado em produção.
O código escrito com o módulo de código pipelines aberto é executado sem modificação no Azure Databricks. Os seguintes recursos não fazem parte do Apache Spark:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
O módulo pipelines era anteriormente chamado dlt no Azure Databricks. Para detalhes e mais informações sobre as diferenças em relação ao Apache Spark, veja O que aconteceu a @dlt?.
Funções para definições de conjuntos de dados
Os pipelines usam decoradores Python para definir conjuntos de dados, como visualizações materializadas e tabelas de streaming. Consulte Funções para definir conjuntos de dados.
Referência da API
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Expectativas
- vista_materializada
- table
- temporary_view
Considerações sobre pipelines de Python
A seguir estão considerações importantes quando você implementa pipelines com a interface Python Lakeflow Spark Declarative Pipelines (SDP):
- O SDP avalia o código que define um pipeline várias vezes durante o planejamento e as execuções do pipeline. As funções Python que definem conjuntos de dados devem incluir apenas o código necessário para definir a tabela ou visualização. A lógica Python arbitrária incluída nas definições do conjunto de dados pode levar a um comportamento inesperado.
- Não tente implementar a lógica de monitoramento personalizada em suas definições de conjunto de dados. Consulte Definir monitoramento personalizado de pipelines com ganchos de eventos.
- A função usada para definir um conjunto de dados deve retornar um Spark DataFrame. Não inclua lógica em suas definições de conjunto de dados que não esteja relacionada a um DataFrame retornado.
- Nunca use métodos que salvem ou gravem em arquivos ou tabelas como parte do código do conjunto de dados do pipeline.
Exemplos de operações do Apache Spark que nunca devem ser usadas no código de pipeline:
collect()count()toPandas()save()saveAsTable()start()toTable()
O que aconteceu com ?@dlt
Anteriormente, o Azure Databricks usava o dlt módulo para dar suporte à funcionalidade de pipeline. O dlt módulo foi substituído pelo pyspark.pipelines módulo. Você ainda pode usar o dlt, mas a Databricks recomenda usar o pipelines.
Diferenças entre DLT, SDP e Apache Spark
A tabela seguinte mostra as diferenças de sintaxe e funcionalidade entre DLT, Lakeflow Spark Declarative Pipelines e Apache Spark Declarative Pipelines.
| Area | Sintaxe DLT | Sintaxe SDP (Lakeflow e Apache, quando aplicável) | Disponível em Apache Spark |
|---|---|---|---|
| Importações | import dlt |
from pyspark import pipelines (as dp, opcionalmente) |
Yes |
| Tabela de transmissão |
@dlt.table com um dataframe em streaming |
@dp.table |
Yes |
| Visão materializada |
@dlt.table com um dataframe em batch |
@dp.materialized_view |
Yes |
| View | @dlt.view |
@dp.temporary_view |
Yes |
| Anexar fluxo | @dlt.append_flow |
@dp.append_flow |
Yes |
| SQL – streaming | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Yes |
| SQL – materializado | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Yes |
| SQL – fluxo | CREATE FLOW ... |
CREATE FLOW ... |
Yes |
| Registo de eventos | spark.read.table("event_log") |
spark.read.table("event_log") |
Não |
| Aplicar Alterações (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Não |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Não |
| Modo contínuo | Configuração de pipeline com gatilho contínuo | (igual) | Não |
| Lavatório | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |