Partilhar via


Apache Spark advisor para aconselhamento em tempo real sobre notebooks

O consultor do Apache Spark analisa comandos e códigos executados pelo Apache Spark e exibe conselhos em tempo real para execuções do Notebook. O consultor Apache Spark tem padrões integrados para ajudar os usuários a evitar erros comuns. Ele oferece recomendações para otimização de código, executa análise de erros e localiza a causa raiz das falhas.

Conselhos integrados

O Spark advisor, uma ferramenta integrada com o Impulse, fornece padrões integrados para detetar e resolver problemas em aplicativos Apache Spark. Este artigo explica alguns dos padrões incluídos na ferramenta.

Você pode abrir o painel Execuções recentes com base no tipo de conselho necessário.

Pode retornar resultados inconsistentes ao usar 'randomSplit'

Resultados inconsistentes ou imprecisos podem ser retornados ao trabalhar com o método randomSplit . Use o cache do Apache Spark (RDD) antes de usar o método randomSplit().

O método randomSplit() é equivalente a executar sample() em seu quadro de dados várias vezes. Onde cada amostra rebusca, particiona e classifica seu quadro de dados dentro de partições. A distribuição de dados entre partições e ordem de classificação é importante para randomSplit() e sample(). Se qualquer uma delas for alterada após a rebusca de dados, pode haver duplicatas ou valores ausentes entre as divisões. E a mesma amostra utilizando a mesma semente pode produzir resultados diferentes.

Essas inconsistências podem não acontecer em todas as execuções, mas para eliminá-las completamente, armazene em cache seu quadro de dados, reparticione em uma coluna ou aplique funções agregadas, como groupBy.

O nome da tabela/vista já está a ser utilizado

Já existe uma vista com o mesmo nome que a tabela criada ou já existe uma tabela com o mesmo nome que a vista criada. Quando esse nome é usado em consultas ou aplicativos, somente a exibição será retornada, independentemente de qual foi criada primeiro. Para evitar conflitos, renomeie a tabela ou a exibição.

Não é possível reconhecer uma dica

spark.sql("SELECT /*+ unknownHint */ * FROM t1")

Não é possível encontrar o(s) nome(s) de uma relação especificada

Não foi possível encontrar a(s) relação(ões) especificada(s) na dica. Verifique se a(s) relação(ões) está(ão) escrita(s) corretamente(s) e acessível(is) dentro do escopo da dica.

spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Uma dica na consulta impede que outra dica seja aplicada

A consulta selecionada contém uma dica que impede que outra dica seja aplicada.

spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Habilite 'spark.advise.divisionExprConvertRule.enable' para reduzir a propagação de erros de arredondamento

Esta consulta contém a expressão com tipo Duplo. Recomendamos que você habilite a configuração 'spark.advise.divisionExprConvertRule.enable', que pode ajudar a reduzir as expressões de divisão e a propagação de erros de arredondamento.

"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"

Habilite 'spark.advise.nonEqJoinConvertRule.enable' para melhorar o desempenho da consulta

Esta consulta contém uma junção demorada devido à condição "Ou" dentro da consulta. Recomendamos que você habilite a configuração 'spark.advise.nonEqJoinConvertRule.enable', que pode ajudar a converter a junção acionada pela condição "Or" para SMJ ou BHJ para acelerar essa consulta.

Experiência de utilizador

O consultor Apache Spark exibe os conselhos, incluindo informações, avisos e erros, na saída da célula do Notebook em tempo real.

  • Informação Captura de ecrã a mostrar as informações.

  • Advertência Captura de ecrã a mostrar o aviso.

  • Erro Captura de tela mostrando os erros.

Configuração do Spark Advisor

A configuração do Spark advisor permite que você escolha se deseja mostrar ou ocultar tipos específicos de conselhos do Spark de acordo com suas necessidades. Além disso, você tem a flexibilidade de habilitar ou desabilitar o Spark Advisor para seus blocos de anotações em um espaço de trabalho, com base em suas preferências.

Você pode acessar as configurações do Spark Advisor no nível do Bloco de Anotações de Malha para aproveitar seus benefícios e garantir uma experiência produtiva de criação de blocos de anotações.

Captura de tela mostrando a configuração do consultor de faísca.