「Spark でショッピングセッションを分析する」は、PySpark のバッチ処理の基礎を身に付けた学習者向けの実践プロジェクトです。終了済みの店舗訪問ログから、繰り返されたイベントと、商品を閲覧したセッション/商品の組み合わせを区別し、正しい商品と時刻に基づいてカート追加を対応付ける、再利用可能な分析を作成します。
2 つのガイド付き実験で関係の判定と完全な商品比較表を作り、1 つの独立したチャレンジで同じ規則を別の店舗のバッチに適用します。各比率の根拠となる件数を含む、実際の Parquet データセットと、それに一致する小さな CSV を成果物として作成します。125~155 分は、読解とよくある誤りへの対処を含む著者の見積もりです。
学習内容
このコースを終えると、次のことができるようになります。
- 完全に同じイベントの再送を除去し、閲覧のあった各セッション/商品ペアと最初の閲覧時刻を保持する。
- 別の商品のカート追加を流用せず、複数の追加が一致しても 1 つの閲覧過程を重複計上せずに、有効なカート追加の存在を判定する。
- 閲覧セッション数を分母として、完了・未完了の件数と未完了比率を計算する。
- 有効なカート追加がゼロの商品と、すべての同率結果を保持する。
- 実際の Parquet と CSV を書き出して読み取り、元の入力を保持したまま派生スナップショットを再構築する。
- 終了済みセッションのパターンが観察の手掛かりであり、ユニーク人数や因果関係の証明ではない理由を説明する。
このコースの対象者
このプロジェクトは、Spark のデータ関係と集計指標を信頼できるものにしたい、データ分析者・データエンジニアを目指す方に適しています。
前提知識: ターミナルでの基本的なファイル移動と、「初心者のための Apache Spark」で学ぶ明示的なスキーマ、フィルター、完全一致の重複除去、DataFrame の結合、グループ化、Parquet の知識が必要です。本プロジェクトでは、セッション/商品という観察単位、最初の閲覧時刻、semi/anti join、完全な比較のための分母を紹介します。
学習環境: 各実験には独立したブラウザー上の Terminal があり、Spark、Python、ローカルのバッチファイル、軽量な出力ドライバーが準備されています。Spark は 1 台のマシンで 2 つのローカルワーカースレッドを使用します。インストール、Hive、Kafka、リモートクラスターは不要です。
よくある質問
Python を書きますか?
はい。Spark DataFrame を返す、小さく再利用可能な関数を完成させます。ガイド付き実験では、使う前に関数の引数と関係式を説明します。提供されるドライバーがセッション作成とファイルへのシリアライズを担当します。
リアルタイムのファネルやユニーク顧客のレポートですか?
いいえ。入力は、有効な識別子と UTC タイムスタンプを持つ、終了済みセッションの有限バッチです。セッションは 1 回の訪問の識別子であり、1 セッションで複数の商品を閲覧できます。ストリーミング、決済、デバイスをまたぐ本人識別はコースの範囲外です。
チャレンジでは何が変わりますか?
バッチの識別子とイベント間の関係が変わります。Spark のツール、時刻の規則、出力形式、復旧方法は同じです。カート追加がゼロの商品と同率結果も含め、完全な比較を保持する必要があります。


