遅延クエリのプロファイリング
新しいクエリを日次ワークフローに追加する前に、チームは処理時間の内訳を確認したいと考えています。プロファイリングは .collect() と同様に遅延クエリを実行しますが、各ステージの処理時間を1行ずつ記録したタイミング用 DataFrame も返します。
この演習はコースの一部です
Polars によるデータパイプラインのスケーリングと最適化
演習の手順
useが"Physical"である行にlibraryをフィルタリングしましょう。.top_k()を使って、title_lenの値が最も大きいタイトルを上位10件に絞りましょう。- タイミング用 DataFrame も取得できるよう、プロファイリングを使ってクエリを実行しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
result, timings = (
library
# Filter to physical checkouts
.filter(pl.col("use") == "____")
.with_columns(pl.col("title").str.len_chars().alias("title_len"))
# Keep the 10 longest titles
.top_k(10, by="____")
# Run with profiling to capture per-stage timings
.____()
)
print(timings)