Análise de consultas e solução de problemas com o Snowpark Scala¶
Este tópico fornece algumas orientações sobre a análise de consultas e a solução de problemas ao trabalhar com a biblioteca do Snowpark.
Neste tópico:
Como visualizar o plano de execução de uma consulta no Snowpark¶
Para inspecionar o plano de avaliação de um DataFrame, chame o método explain
do DataFrame. Isso imprime as instruções SQL usadas para avaliar o DataFrame. Se houver apenas uma instrução SQL, o método também imprime o plano lógico para a instrução.
----------DATAFRAME EXECUTION PLAN----------
Query List:
0.
SELECT
"_1" AS "col %",
"_2" AS "col *"
FROM
(
SELECT
*
FROM
(
VALUES
(1 :: int, 2 :: int),
(3 :: int, 4 :: int) AS SN_TEMP_OBJECT_639016133("_1", "_2")
)
)
Logical Execution Plan:
GlobalStats:
partitionsTotal=0
partitionsAssigned=0
bytesAssigned=0
Operations:
1:0 ->Result SN_TEMP_OBJECT_639016133.COLUMN1, SN_TEMP_OBJECT_639016133.COLUMN2
1:1 ->ValuesClause (1, 2), (3, 4)
--------------------------------------------
Após a execução de um DataFrame ter sido acionada, você pode verificar o progresso da consulta na página History na Classic Console.
Na coluna Query Tag, você pode encontrar o nome da função e o número da linha em seu código que acionou essa consulta.
Solução de problemas¶
Como mudar as configurações de registro em log¶
Por padrão, a biblioteca do Snowpark registra em log mensagens de nível INFO
para o stdout. Para alterar as configurações de registro em log, crie um arquivo simplelogger.properties
e configure as propriedades do agente de log nesse arquivo. Por exemplo, para definir o nível de log como DEBUG
:
# simplelogger.properties file (a text file)
# Set the default log level for the SimpleLogger to DEBUG.
org.slf4j.simpleLogger.defaultLogLevel=debug
Coloque esse arquivo no seu classpath. Se você estiver usando um layout de diretório do Maven, coloque o arquivo no diretório src/main/resources/
.
Exceções java.lang.OutOfMemoryError¶
Se uma exceção java.lang.OutOfMemoryError
for gerada, aumente o tamanho máximo da pilha da JVM.
Se você estiver usando a REPL do Scala e precisar aumentar o tamanho máximo da pilha, edite o script do shell run.sh
(fornecido no arquivo morto) e adicione o sinalizador -J-Xmxmaximum_size
ao comando scala
. O exemplo a seguir aumenta o tamanho máximo da pilha para 4 GB:
scala -J-Xmx4G ...