Analyse des requêtes et dépannage avec Snowpark Scala¶
Cette rubrique fournit quelques lignes directrices sur l’analyse des requêtes et le dépannage des problèmes lorsque vous travaillez avec la bibliothèque Snowpark.
Dans ce chapitre :
Visualiser le plan d’exécution d’une requête dans Snowpark¶
Pour inspecter le plan d’évaluation d’une DataFrame, appelez la méthode explain
de la DataFrame. Ceci imprime les instructions SQL utilisées pour évaluer les DataFrame. S’il n’y a qu’une seule instruction SQL, la méthode imprime également le plan logique de l’instruction.
----------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)
--------------------------------------------
Une fois l’exécution d’une DataFrame déclenchée, vous pouvez vérifier la progression de la requête dans la page History de l”Classic Console.
Dans la colonne Query Tag, vous pouvez trouver le nom de la fonction et le numéro de ligne dans votre code qui a déclenché cette requête.
Dépannage¶
Modification des paramètres de journalisation¶
Par défaut, la bibliothèque Snowpark enregistre les messages de niveau INFO
sur stdout. Pour modifier les paramètres de journalisation, créez un fichier simplelogger.properties
et configurez les propriétés du journaliseur dans ce fichier. Par exemple, pour définir le niveau de la journalisation sur DEBUG
:
# simplelogger.properties file (a text file)
# Set the default log level for the SimpleLogger to DEBUG.
org.slf4j.simpleLogger.defaultLogLevel=debug
Mettez ce fichier dans votre classpath. Si vous utilisez une disposition de répertoire Maven, placez le fichier dans le répertoire src/main/resources/
.
Exceptions java.lang.OutOfMemoryError¶
Si une exception java.lang.OutOfMemoryError
est levée, augmentez la taille maximale du Heap pour le JVM.
Si vous utilisez Scala REPL et que vous devez augmenter la taille maximale du Heap, modifiez le script shell run.sh
(fourni dans le fichier d’archive) et ajoutez l’indicateur -J-Xmxmaximum_size
à la commande scala
. L’exemple suivant augmente la taille maximale du Heap à 4 GB :
scala -J-Xmx4G ...