Compartilhar via


Assistente do Apache Spark para obter conselhos 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 de Notebook. O assistente do Apache Spark tem padrões internos para ajudar os usuários a evitar erros comuns. Ele oferece recomendações para otimização de código, executa a análise de erros e localiza a causa raiz de falhas.

Conselhos internos

O orientador do Spark, uma ferramenta integrada ao Impulse, fornece padrões internos para detectar 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 de acordo com o tipo de conselho que você precisa.

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 exemplos() no quadro de dados várias vezes. Onde cada exemplo refeta, 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 ocorrerem alterações em algum dos itens durante a nova busca de dados, poderá haver valores duplicados ou ausentes entre as partições. E o mesmo exemplo usando a mesma semente pode produzir resultados diferentes.

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

O nome da tabela/exibição já está em uso

Já existe uma visão com o mesmo nome da tabela criada ou já existe uma tabela com o mesmo nome que a visão criada. Quando esse nome é usado em consultas ou aplicativos, somente a visão será retornada, não importa qual foi criado 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 localizar um(s) nome(s) de relação especificado

Não é possível localizar as relações especificadas na dica. Verifique se as relações estão escritas corretamente e acessíveis 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 uma expressão do tipo Double. Recomendamos que você habilite a configuração 'spark.advise.divisionExprConvertRule.enable', que pode ajudar a reduzir as expressões de divisão e reduzir a propagação de erro 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

Essa consulta contém uma operação de junção demorada devido à condição "OU". Recomendamos que você habilite a configuração 'spark.advise.nonEqJoinConvertRule.enable', que pode ajudar a converter a junção disparada pela condição "Or" em SMJ ou BHJ para acelerar essa consulta.

Experiência do usuário

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

Configuração do Orientador do Spark

A configuração do orientador do Spark 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 Assistente do Spark para seus Blocos de Anotações em um workspace, com base em suas preferências.

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

Captura de tela mostrando a configuração do orientador do Spark.