Snowpark Scalaを使用したクエリの分析とトラブルシューティング¶
このトピックでは、Snowparkライブラリを使用する際のクエリの分析と、問題のトラブルシューティングに関するガイドラインをいくつか提供します。
このトピックの内容:
Snowparkにおけるクエリの実行プランの表示¶
DataFrame の評価計画を調べるには、 DataFrame の explain
メソッドを呼び出します。これにより、 DataFrame の評価に使用される SQL ステートメントが出力されます。SQL ステートメントが1つしかない場合、メソッドはステートメントの論理プランも出力します。
----------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)
--------------------------------------------
DataFrame の実行がトリガーされた後、 Classic Console の History ページでクエリの進行状況を確認できます。
Query Tag 列には、このクエリをトリガーしたコード内の関数の名前と行番号が表示されます。
トラブルシューティング¶
ログ設定の変更¶
デフォルトでは、Snowparkライブラリは INFO
レベルのメッセージをstdoutにログします。ログ設定を変更するには、 simplelogger.properties
ファイルを作成し、そのファイルでロガーのプロパティを構成します。たとえば、ログレベルを DEBUG
に設定するには、次のようにします。
# simplelogger.properties file (a text file)
# Set the default log level for the SimpleLogger to DEBUG.
org.slf4j.simpleLogger.defaultLogLevel=debug
このファイルをクラスパスに配置します。Mavenディレクトリレイアウトを使用している場合は、ファイルを src/main/resources/
ディレクトリに配置します。
java.lang.OutOfMemoryError の例外¶
java.lang.OutOfMemoryError
の例外がスローされた場合は、 JVM の最大ヒープサイズを増やします。
Scala REPL を使用していて、最大ヒープサイズを増やす必要がある場合は、 run.sh
シェルスクリプト(アーカイブファイルで提供)を編集し、 -J-Xmxmaximum_size
フラグを scala
コマンドに追加します。次の例では、最大ヒープサイズを4 GB に増やします。
scala -J-Xmx4G ...