E/S de estágio alto do Spark
Em seguida, reexamine as estatísticas de E/S do estágio mais longo:
O que é E/S alto?
Quantos dados precisam estar em uma coluna de E/S para serem considerados altos? Para descobrir isso, comece com o número mais alto em qualquer uma das colunas fornecidas. Em seguida, considere o número total de núcleos de CPU que você tem em todos os nossos trabalhos. Geralmente, todos os núcleos podem ler e gravar cerca de 3 MBs por segundo.
Divida sua maior coluna de E/S pelo número de núcleos de trabalho do cluster e divida-a por segundos de duração. Se o resultado for em torno de 3 MB, você provavelmente estará associado a E/S. Isso seria E/S alto.
Entrada alta
Se houver muitas entradas no seu palco, isso significa que você está gastando muito tempo lendo dados. Primeiro, identifique quais dados esse estágio está lendo. Consulte Identificar uma leitura cara no DAG do Spark.
Depois de você identificar os dados específicos, aqui estão algumas abordagens para acelerar suas leituras:
- Use Delta.
- Experimente Photon Isso pode ajudar muito na velocidade de leitura, especialmente com tabelas largas.
- Torne sua consulta mais seletiva para que ela não precise ler tantos dados.
- Reconsidere seu layout de dados para que a omissão de dados seja mais eficaz.
- Se você estiver lendo os mesmos dados várias vezes, use o Cache Delta.
- Se você estiver fazendo uma junção, considere a possibilidade de tentar fazer o DFP funcionar.
Saída alta
Se você vir muitas saídas do seu estágio, isso significa que você está gastando muito tempo gravando dados. Aqui estão algumas abordagens para resolver isso:
- Você está reescrevendo muitos dados? Consulte Como determinar se o Spark está reescrevendo os dados para verificar. Se você estiver reescrevendo muitos dados:
- Veja se você tem uma mesclagem que precisa ser otimizada.
- Use os vetores de exclusão para marcar as linhas existentes como removidas ou alteradas sem reescrever o arquivo Parquet.
- Habilite o Photon se ainda não estiver habilitado. O Photon pode ajudar muito com a velocidade de gravação.
Embaralhamento alto
Se você não estiver familiarizado com o shuffle, este é o momento de aprender.
Sem E/S alta
Se você não vir a E/S alta em nenhuma das colunas, precisará se aprofundar. Consulte Estágio do Spark lento com pouco E/S.