Compartilhar via


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

    Captura de tela que mostra as recomendações da categoria Informativo.

  • Aviso

    Captura de tela que mostra as recomendações da categoria Aviso.

  • Errors

    Captura de tela que mostra as recomendações da categoria Erro.

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