Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A interface Python dos pipelines do Lakeflow é definida no módulo pyspark.pipelines, importado como dp.
- 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 do SQL, consulte a referência de linguagem SQL do Pipeline.
- Para obter detalhes específicos para configurar o Carregador Automático, consulte o que é o Carregador Automático?.
pipelines visão geral do módulo
As funções Python dos pipelines do Lakeflow são definidas no módulo pyspark.pipelines (importado como dp). Seus pipelines implementados com a API do 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 no Python em execução fora dos pipelines. Para saber mais sobre edição do código de pipeline, confira Desenvolver e depurar pipelines ETL com o Editor de Pipelines do Lakeflow.
Pipelines do Apache Spark™
O Apache Spark inclui pipelines declarativos a partir do Spark 4.1, disponíveis por meio do pyspark.pipelines módulo. O Databricks Runtime estende esses recursos de software livre com APIs adicionais e integrações para uso de produção gerenciada.
O código escrito com o módulo de software pipelines livre é 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(...)
O pipelines módulo foi chamado dlt anteriormente no Azure Databricks. Para obter detalhes e mais informações sobre as diferenças do Apache Spark, consulte o que aconteceu com @dlt?.
Funções para definições de conjunto de dados
Os pipelines usam decoradores python para definir conjuntos de dados, como exibições materializadas e tabelas de streaming. Consulte Funções para definir conjuntos de dados.
Referência de API
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Expectativas
- foreach_batch_sink
- visão materializada
- table
- temporary_view
- update_flow
Requisitos de codificação para pipelines do Python
A seguir estão os requisitos importantes ao implementar pipelines com a interface Python do Lakeflow Pipelines:
- Os pipelines Lakeflow avaliam o código que define um pipeline várias vezes durante o planejamento e as execuções do pipeline. As funções do Python que definem conjuntos de dados devem incluir apenas o código necessário para definir a tabela ou exibição. A lógica arbitrária do Python 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. Confira Definir o monitoramento personalizado de pipelines com ganchos de evento.
- A função usada para definir um conjunto de dados deve retornar um DataFrame do Spark. Não inclua lógica em suas definições de conjunto de dados que não estão relacionadas a um DataFrame retornado.
- Nunca use métodos que salvem ou escrevam 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 do pipeline:
collect()count()toPandas()save()saveAsTable()start()toTable()
O que aconteceu?@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 dlt, mas o Databricks recomenda usar pipelines.
Diferenças entre pipelines DLT, Lakeflow e Pipelines Declarativos do Apache Spark
A tabela a seguir mostra as diferenças na sintaxe e na funcionalidade entre DLT, pipelines Lakeflow e Pipelines Declarativos do Apache Spark.
Para obter uma comparação em nível de recursos do que os pipelines do Lakeflow compartilham com o Apache Spark Declarative Pipelines e do que acrescentam a ele, consulte Apache Spark Declarative Pipelines.
Para obter um mapeamento detalhado, propriedade por propriedade, da configuração do pipeline para a especificação do projeto SDP, consulte a Referência de propriedades do pipeline.
Observação
Na documentação da Databricks, o produto da Databricks é chamado Lakeflow pipelines, e o framework de código aberto que ele estende é Apache Spark™ Declarative Pipelines (SDP). Os dois são interoperáveis, mas diferem em recursos, por exemplo, as AUTO CDC APIs estão disponíveis apenas em pipelines do Lakeflow.
| Area | Sintaxe DLT | Sintaxe SDP (Lakeflow e Apache, quando aplicável) | Disponível no Apache Spark |
|---|---|---|---|
| Importações | import dlt |
from pyspark import pipelines (as dpopcionalmente) |
Yes |
| Tabela de streaming |
@dlt.table com um dataframe de streaming |
@dp.table |
Yes |
| Visão materializada |
@dlt.table com um dataframe em lote |
@dp.materialized_view |
Yes |
| View | @dlt.view |
@dp.temporary_view |
Yes |
| Fluxo de acréscimo | @dlt.append_flow |
@dp.append_flow |
Yes |
| Fluxo de atualização | Indisponível | @dp.update_flow |
Não |
| SQL – transmissão | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Yes |
| SQL – materializado | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Yes |
| SQL – fluxo | CREATE FLOW ... |
CREATE FLOW ... |
Yes |
| Log 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 | (mesmo) | Não |
| Coletor | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |
| Coletor ForEachBatch | Indisponível | @dp.foreach_batch_sink(...) |
Não |