Assistente do Apache Spark no Azure Synapse Analytics (Pré-visualização)

O assistente do Apache Spark analisa comandos e código executados pelo Spark e apresenta conselhos em tempo real para execuções do Bloco de Notas. O assistente do Spark tem padrões incorporados para ajudar os utilizadores a evitar erros comuns, oferecer recomendações para otimização de código, realizar análise de erros e localizar a causa principal das falhas.

Conselhos incorporados

Pode devolver resultados inconsistentes ao utilizar "randomSplit"

Podem ser devolvidos resultados inconsistentes ou imprecisos ao trabalhar com os resultados do método "randomSplit". Utilize a colocação em cache do Apache Spark (RDD) antes de utilizar o método "randomSplit".

O método randomSplit() é equivalente à execução de exemplo() no seu pacote de dados várias vezes, com cada amostra a refetching, a criação de partições e a ordenação da moldura de dados dentro de partições. A distribuição de dados entre partições e sequência de ordenação é importante para randomSplit() e sample(). Se as alterações aos dados forem recortados, poderão existir duplicados ou valores em falta entre divisões e a mesma amostra que utiliza a mesma semente poderá produzir resultados diferentes.

Estas inconsistências podem não ocorrer em todas as execuções, mas para eliminá-las completamente, colocar em cache o seu fotograma de dados, dividir novamente numa(s) coluna(s) ou aplicar 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 este nome é utilizado em consultas ou aplicações, apenas a vista será devolvida independentemente da vista criada primeiro. Para evitar conflitos, mude o nome da tabela ou da vista.

Não é possível reconhecer uma sugestão

A consulta selecionada contém uma sugestão que não é reconhecida. Verifique se a sugestão está escrita corretamente.

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

Não é possível localizar um(s) nome(s) de relação especificado(s)

Não é possível localizar as relações especificadas na sugestão. Verifique se as relações estão escritas corretamente e acessíveis no âmbito da sugestão.

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

Uma sugestão na consulta impede que outra sugestão seja aplicada

A consulta selecionada contém uma sugestão que impede a aplicação de outra sugestão.

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

Ative "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 ative a configuração "spark.advise.divisionExprConvertRule.enable", que pode ajudar a reduzir as expressões de divisão e a reduzir a propagação de erros de arredondamento.

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

Ative "spark.advise.nonEqJoinConvertRule.enable" para melhorar o desempenho das consultas

Esta consulta contém uma associação demorada devido à condição "Ou" na consulta. Recomendamos que ative a configuração "spark.advise.nonEqJoinConvertRule.enable", que pode ajudar a converter a associação acionada pela condição "Ou" em SMJ ou BHJ para acelerar esta consulta.

Otimizar a tabela delta com compactação de ficheiros pequenos

Esta consulta encontra-se numa tabela delta com muitos ficheiros pequenos. Para melhorar o desempenho das consultas, execute o comando OTIMIZAR na tabela delta. Pode encontrar mais detalhes neste artigo.

Otimizar a tabela Delta com zOrder

Esta consulta encontra-se numa tabela Delta e contém um filtro altamente seletivo. Para melhorar o desempenho das consultas, execute o comando OPTIMIZE ZORDER BY na tabela delta. Pode encontrar mais detalhes neste artigo.

Experiência do Utilizador

O assistente do Apache Spark apresenta os conselhos, incluindo informações, avisos e erros, na saída da célula do Bloco de Notas em tempo real.

  • Informações

    Captura de ecrã a mostrar para obter informações de conselhos.

  • Aviso

    Captura de ecrã a mostrar o aviso de aconselhamento.

  • Erros

    Captura de ecrã a mostrar o erro de conselhos.

Passos seguintes

Para obter mais informações sobre como monitorizar aplicações do Apache Spark, veja o artigo Monitorizar aplicações do Apache Spark com Synapse Studio.

Para obter mais informações sobre como criar um bloco de notas, veja Como utilizar blocos de notas do Synapse