LakeFlow Spark Pipeline declarativo Referência da linguagem Python
Esta seção contém detalhes sobre a interface de programação Python do pipeline declarativo Spark (SDP) LakeFlow .
- Para informações conceituais e uma visão geral do uso Python para pipelines, consulte Desenvolver código pipeline com Python.
- Para obter informações sobre SQL , consulte a referência da linguagem SQL de pipeline.
- 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 pipeline declarativo LakeFlow Spark são definidas no módulo pyspark.pipelines (importado como dp). Seu pipeline implementado com a API Python deve importar este módulo:
from pyspark import pipelines as dp
O módulo pipeline só está disponível no contexto de um pipeline. Não está disponível em Python executado fora do pipeline. Para obter mais informações sobre como editar código pipeline , consulte Desenvolver e depurar pipeline ETL com o LakeFlow Pipelines Editor.
PipelineApache Spark™
Apache Spark inclui um pipeline declarativo a partir do Spark 4.1, disponível por meio do módulo pyspark.pipelines . O Databricks Runtime estende esses recursos de código aberto com APIs e integrações adicionais para uso em produção.
Código escrito com o módulo código aberto pipelines execução sem modificação no 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 de dlt no Databricks. Para detalhes e mais informações sobre as diferenças em relação ao Apache Spark, consulte O que aconteceu com @dlt?.
Funções para definições dataset
O pipeline utiliza decoradores Python para definir conjuntos de dados, como visualizações materializadas e tabelas de transmissão. Consulte Funções para definir o conjunto de dados.
Referência de API
- fluxo_de_acréscimo
- criar_fluxo_automático_cdc
- criar_auto_cdc_a_partir_do_fluxo_de_instantâneo
- criar_pia
- criar_tabela_de_streaming
- Expectativas
- visualização_materializada
- tabela
- visualização_temporária
Considerações para o pipeline Python
Os seguintes pontos são importantes a serem considerados ao implementar um pipeline com a interface Python LakeFlow Spark Declarative Pipeline (SDP):
- O SDP avalia o código que define um pipeline várias vezes durante o planejamento e a execução do pipeline. As funções Python que definem um conjunto de dados devem incluir apenas o código necessário para definir a tabela ou view. A inclusão de lógica arbitrária Python nas definições dataset pode levar a comportamentos inesperados.
- Não tente implementar lógica de monitoramento personalizada nas definições do seu dataset . Consulte Definir monitoramento personalizado de pipeline com ganchos de evento.
- A função usada para definir um dataset deve retornar um Spark DataFrame. Não inclua lógica nas definições do seu dataset que não esteja relacionada a um DataFrame retornado.
- Nunca utilize métodos que salvam ou gravam em arquivos ou tabelas como parte do código do seu dataset pipeline .
Exemplos de operações do Apache Spark que nunca devem ser usadas em código de pipeline:
collect()count()toPandas()save()saveAsTable()start()toTable()
O que aconteceu com @dlt?
Anteriormente, o Databricks usava o módulo dlt para dar suporte à funcionalidade de pipeline. O módulo dlt foi substituído pelo módulo pyspark.pipelines . Você ainda pode usar dlt, mas o Databricks recomenda o uso de pipelines.
Diferenças entre DLT, SDP e Apache Spark
A tabela a seguir mostra as diferenças de sintaxe e funcionalidade entre DLT, pipeline declarativo LakeFlow Spark e pipeline declarativo Apache Spark .
Área | sintaxe DLT | Sintaxe SDP (LakeFlow e Apache, quando aplicável) | Disponível no Apache Spark |
|---|---|---|---|
Importações |
|
| Sim |
Tabela de transmissão |
|
| Sim |
Visualização materializada |
|
| Sim |
View |
|
| Sim |
Fluxo de anexação |
|
| Sim |
SQL – show |
|
| Sim |
SQL – materializado |
|
| Sim |
SQL – fluxo |
|
| Sim |
Registro de eventos |
|
| Não |
Aplicar alterações (CDC) |
|
| Não |
Expectativas |
|
| Não |
Modo contínuo | Configuração de pipeline com gatilho contínuo | (mesmo) | Não |
Afundar |
|
| Sim |