Assistente do Apache Spark no Azure Synapse Analytics (Pré-visualização)
O assistente do Apache Spark analisa os comandos e o código executados pelo Spark e exibe recomendações em tempo real para execuções do Notebook. O assistente do Spark tem padrões internos para ajudar os usuários a evitar erros comuns, oferecer recomendações para otimização de código, executar a análise de erro e localizar a causa raiz de falhas.
Recomendações internas
Pode retornar resultados inconsistentes ao usar 'randomSplit'
Resultados inconsistentes ou imprecisos podem ser retornados ao trabalhar com os resultados do método 'randomSplit'. Use o cache do Apache Spark (RDD) antes de usar o método 'randomSplit'.
O método randomSplit() é equivalente a executar amostra() em seu quadro de dados várias vezes, com cada exemplo de recuperando, particionamento e classificação do quadro de dados dentro de partições. A distribuição de dados entre partições e a ordem de classificação é importante para randomSplit() e sample(). Se forem alteradas na nova busca de dados, poderá haver duplicatas ou valores ausentes entre divisões e o mesmo exemplo usando a mesma semente poderá 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
A consulta selecionada contém uma dica que não é reconhecida. Verifique se a dica está escrita corretamente.
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.
Otimizar a tabela delta com a compactação de arquivos pequenos
Essa consulta está em uma tabela delta com muitos arquivos pequenos. Para aprimorar o desempenho das consultas, execute o comando OPTIMIZE na tabela delta. Encontre mais detalhes neste artigo.
Otimizar a tabela Delta com ZOrder
Essa consulta está em uma tabela Delta e contém um filtro altamente seletivo. Para aprimorar o desempenho das consultas, execute o comando OPTIMIZE ZORDER BY na tabela delta. Encontre mais detalhes neste artigo.
Experiência de usuário
O assistente do Apache Spark exibe as recomendações, incluindo informativo, avisos e erros, na saída da célula do notebook em tempo real.
Info
Aviso
Errors
Próximas etapas
Para saber mais sobre o monitoramento de aplicativos Apache Spark, confira o artigo Monitorar aplicativos Apache Spark no Synapse Studio.
Para obter mais informações sobre como criar um notebook, confira Como usar notebooks do Synapse