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)

--------------------------------------------
Copy

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 Onglet Historique 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.

Requête Snowpark dans la page Historique de la console classique

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
Copy

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 ...
Copy