O assistente do Apache Spark para orientação em tempo real em notebooks
O assistente do Apache Spark analisa comandos e códigos executados pelo Apache Spark e exibe orientações em tempo real para execuções do 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, realiza análise de erros e localiza a causa raiz das falhas.
Recomendações internas
O assistente 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 com base no tipo de orientação necessária.
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 exemplo refaz a busca, particiona e classifica seu quadro de dados dentro das partições. A distribuição de dados entre partições e a ordem de classificação é importante para randomSplit() e sample(). Se qualquer um deles for alterado na busca de dados, poderá haver duplicatas ou valores ausentes nas divisõ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, reparticione em uma coluna ou aplique funções de agregação, como groupBy.
O nome da tabela/exibição já está em uso
Já existe uma exibição com o mesmo nome que a tabela criada ou já existe uma tabela com o mesmo nome que o modo de exibição criado. Quando esse nome for usado em consultas ou aplicativos, somente a exibição será retornada, independentemente de qual deles tenha sido 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 foi possível encontrar os nomes de uma relação especificada
Não é possível localizar as relações especificadas na dica. Verifique se as relações estão escritas corretamente e acessíveis no 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 erro de arredondamento
Essa consulta contém a expressão com o tipo Double. É recomendável habilitar 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 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 disparada pela condição “Ou” em SMJ ou BHJ para acelerar essa consulta.
Experiência do usuário
O assistente do Apache Spark exibe os orientações, incluindo informações, avisos e erros, na saída da célula do Notebook em tempo real.
Informações
Aviso
Erro
Configuração do assistente do Spark
A configuração do assistente 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 notebooks em um espaço de trabalho, de acordo com suas preferências.
Você pode acessar as configurações do assistente do Spark no nível do notebook do Fabric para aproveitar seus benefícios e garantir uma experiência produtiva de criação de notebooks.