Pular para o conteúdo principal

Muitos pequenos Spark Trabalho

Se a linha do tempo de Job mostrar muitos Job curtos em execução um após o outro, a carga de trabalho pode estar em execução de muitas operações em dados pequenos, com menos de 10 GB. Cada operação leva apenas alguns segundos, mas o tempo e a sobrecarga fixa por operação se acumulam. Quando pequenos jobs entram em execução um de cada vez, grande parte do cluster pode ficar parada, então você paga por um compute que não usa.

Use esta página quando a linha do tempo de jobs mostrar principalmente jobs pequenos. Se a linha do tempo mostrar um padrão diferente, consulte a página para esse padrão:

Execução de operações em paralelo​

A melhor maneira de acelerar pequenos jobs é a execução de várias operações em paralelo. Use uma destas abordagens:

  • Use LakeFlow Pipelines. A Databricks recomenda o uso de LakeFlow Pipelines, que executam operações em paralelo automaticamente.
  • Use jobs multitarefa. Separe as operações em vários Notebooks e faça a execução delas em paralelo no mesmo cluster com Jobs multitarefa.
  • Use um SQL warehouse. Se todas as consultas estiverem escritas em SQL, execute-as em um SQL warehouse. Os SQL warehouse são projetados para executar muitas query em paralelo.
  • Use uma tarefa For each. Parametrize o notebook e use uma tarefa For each para realizar uma execução dele várias vezes em paralelo. Defina a Concorrência para controlar o nível de paralelismo. Esta abordagem funciona bem com o compute serverless.

Dimensione corretamente a compute​

Se você não puder paralelizar as operações, pequenas operações em dados pequenos não se beneficiam de muitos workers. Use um clusters menor ou compute de nó único ou faça a execução da carga de trabalho em compute Serverless para que você não precise gerenciar o tamanho do cluster.