1.4標準
ScalaでSpark Datasetを変換し、同じ入力から再現可能な出力を作る。
共有可変状態によるタスク間の競合を避ける。
最も適切な方法はどれか。
× 不正解
Sparkでは不変Datasetの変換を組み合わせ、共有可変状態や外部ファイルへの直接追記を避ける。
詳細解説
正しいDatasetのmap・filterなどの変換を連鎖し、可変共有状態を避ける
各変換が入力から新しいDatasetを作るため、分散実行で副作用を抑えられる。
各変換が入力から新しいDatasetを作るため、分散実行で副作用を抑えられる。
誤り全タスクが共有する可変カウンターを更新する
タスク並列実行と再試行で値が競合・二重加算され、結果が再現しない。
タスク並列実行と再試行で値が競合・二重加算され、結果が再現しない。
誤りS3ファイル名へ計算結果を直接追記する
並列タスク間の競合と部分書き込みを管理できない。
並列タスク間の競合と部分書き込みを管理できない。
誤りIAMロールの更新でDatasetを不変にする
IAMは権限を変えるだけで、プログラムのデータ構造を不変化しない。
IAMは権限を変えるだけで、プログラムのデータ構造を不変化しない。
実際に確かめる
一時的な検証環境で実行できる例です。
Apache Spark Dataset・RDDのtransformations、immutability、lazy evaluationを確認する。期待される結果
分散処理における不変性・副作用・再試行の関係を説明できる。理解のポイント
- Scala
- Spark Dataset
- 不変性
- 副作用
確認時の注意
- 確認環境: AWS公式DEA-C01試験ガイドと各サービスの公式ドキュメントの確認
- AWS公式DEA-C01 Domain 1・Task 1.4と各サービスの公式ドキュメントを確認する。
基礎のおさらい
分散再試行
同じタスクが複数回実行されても結果が変わらない変換を作る。
出力コミット
タスク出力を一時領域へ書き、成功時にコミットすることで部分結果を防ぐ。
問題IDAWS-DEA-090
確認環境AWS公式DEA-C01試験ガイドと各サービスの公式ドキュメントの確認
最終技術確認2026-08-20
誤り・権利侵害を報告