Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Em seguida, veja as estatísticas de E/S do estágio mais longo novamente:
O que é alto desempenho de E/S?
Quantos dados precisam estar em uma coluna de E/S para serem considerados altos? Para descobrir isso, primeiro comece com o maior número em qualquer uma das colunas dadas. Em seguida, considere o número total de núcleos de CPU que você tem em todos os nossos trabalhadores. Geralmente, cada núcleo pode ler e escrever cerca de 3 MB por segundo.
Divida a maior coluna de E/S pelo número de núcleos de trabalho do cluster e, em seguida, divida o resultado pela duração em segundos. Se o resultado for de cerca de 3 MB, então você provavelmente está vinculado a E/S. Isso seria alto I/O.
Elevado nível de entrada
Se reparar em muitas entradas na sua fase, significa que está a gastar muito tempo a ler dados. Primeiro, identifique quais dados esta etapa está lendo. Consulte Como identificar uma leitura dispendiosa no DAG do Spark.
Depois de identificar os dados específicos, aqui estão algumas abordagens para acelerar suas leituras:
- Usa Delta.
- Use agrupamento líquido para otimizar a omissão de dados. Veja Utilizar clustering líquido para tabelas.
- Experimente Photon. Pode ajudar muito com a rapidez de leitura, especialmente para tabelas largas.
- Torne sua consulta mais seletiva para que ela não precise ler tantos dados.
- Reconsidere o seu layout de dados para que data skipping seja mais eficaz.
- Se você estiver lendo os mesmos dados várias vezes, use o cache Delta.
- Se estiver a fazer uma junção, considere tentar fazer DFP funcionar.
- Aumente o tamanho do cluster ou use computação sem servidor.
Alta produção
Se vires muitos resultados da tua etapa, isso significa que estás a gastar muito tempo a gravar dados. Aqui estão algumas abordagens para resolver isso:
- Você está reescrevendo muitos dados? Consulte Como determinar se o Spark está a reescrever dados para verificar. Se você estiver reescrevendo muitos dados:
- Vê se tens uma fusão de que precisa ser otimizada.
- Use vetores de eliminação e para marcar linhas existentes como removidas ou alteradas sem reescrever o arquivo Parquet.
- Habilite Photon caso ainda não esteja. Photon pode ajudar muito com a velocidade de escrita.
- Aumente o tamanho do cluster ou use computação sem servidor.
Alta aleatorização
O Databricks recomenda que defina spark.sql.shuffle.partitions=auto para permitir que o Spark escolha automaticamente o número ideal de partições de shuffle. Se você não está familiarizado com o shuffle, este é o momento de aprender.
Sem alta capacidade de E/S
Se você não vê E/S alta em nenhuma das colunas, então você precisa cavar mais fundo. Consulte estágio Slow Spark com pouca E/S.