Partilhar via


Alta E/S da etapa Spark

Em seguida, veja as estatísticas de E/S do estágio mais longo novamente:

Estágio Longo de E/S

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:

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:

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.