Spark 開発における絶望的完全開発ガイドシリーズ ～ Deeply Deep Dive into Spark ～

## はじめに

Spark 開発者向けプラクティス集が欲しいと考え、Spark 開発のためのナレッジをコンテンツを整理しました。`Deeply Deep Dive` というタイトルにて、`Deep dive` として公開されている情報に満足したことはないので、より深さを求めていることを表現しました。コンテンツ作成を作成する際には、要求される知識量に対する絶望を感じること、いわゆる`完全に理解した`の先へいざなうことを意識しました。その絶望の先には、おもしろさがあります。本開発ガイドシリーズがそれに気付くことへの一助になれば幸いです。

本ガイドシリーズを読む前に、次のトレーニングを受講、あるいは、トレーニング相当の知識を有することが望ましいです。開発ガイドシリーズでは、項目に対する細かな説明を実施していないため、ドキュメントやトレーニングコンテンツを適宜参照してください。Github にて公開しているコードを自分の環境で動作させることにより、理解を深めてください。

-   Spark概要
    -   英語
        -   [apache-spark-programming-with-databricks · GitHub](https://github.com/databricks-academy/apache-spark-programming-with-databricks/releases)
    -   日本語
        -   [databricks-academy/apache-spark-programming-with-databricks-japanese (github.com)](https://github.com/databricks-academy/apache-spark-programming-with-databricks-japanese)
-   データエンジニアリング
    -   英語
        -   [data-engineering-with-databricks · GitHub](https://github.com/databricks-academy/data-engineering-with-databricks/releases)
        -   [advanced-data-engineering-with-databricks · GitHub](https://github.com/databricks-academy/advanced-data-engineering-with-databricks/releases)
    -   日本語
        -   [data-engineering-with-databricks-japanese · GitHub](https://github.com/databricks-academy/data-engineering-with-databricks-japanese)
-   データ解析
    -   英語
        -   [scalable-machine-learning-with-apache-spark · GitHub](https://github.com/databricks-academy/scalable-machine-learning-with-apache-spark/releases)
        -   [ml-in-production · GitHub](https://github.com/databricks-academy/ml-in-production/releases)
    -   日本語
        -    [scalable-machine-learning-with-apache-spark-japanese  · GitHub](https://github.com/databricks-academy/scalable-machine-learning-with-apache-spark-japanese/releases)
        -   [ml-in-production-japanese  · GitHub](https://github.com/databricks-academy/ml-in-production-japanese/releases)



## 絶望的完全開発ガイドシリーズの記事 ～ Spark 編 ～

下記表は、想定分野とそれに紐づく記事を示しています。関連する補足記事とレポジトリーもあります。

| GroupID | 分野               | 記事                                                         |
| ------- | ---------------------- | ------------------------------------------------------------ |
| T10     | Spark概要                  | - [PySpark 開発時に知っておくべき７つのテーマ](https://qiita.com/manabian/items/9117ac98246dd8bb6edf) |
| T20     | データエンジニアリング | - [PySpark によるデータエンジニアリング実践](https://qiita.com/manabian/items/04a6a9bb5634288d4c56) |
| T30     | データ品質チェック     | - [PySpark によるデータ品質に関する処理の開発実践](https://qiita.com/manabian/items/f3d06151a9f72cc67d2b) |
| T40     | データサイエンス       | 未着手（実装時期未定）                                         |
| T50     | メタデータデプロイ     | - [PySpark によるメタデータデプロイの実践](https://qiita.com/manabian/items/6bce34dc438b8e8418b7) |
| T60     | テスト                 | - [ノートブック型 Spark サービス（Databricks）における 単体テストの実践](https://qiita.com/manabian/items/918b7dfbe55f164ea599) |
| T70     | DevOps                 | - [ノートブック型 Spark サービス（Databricks）における DevOps の実践](https://qiita.com/manabian/items/ebe19ad74a61bfaacc74) |

**補足記事**
- データサイエンス
    - [AIモデルを構築する上で分析基盤で保証すべき拡張性～MLOps/AIOpsをはじめるそのまえに～ - Qiita](https://qiita.com/manabian/items/e23266677edd163807d3)
- メタデータデプロイ
    - [Spark のデータオブジェクト のメタデータ取得方法 - Qiita](https://qiita.com/manabian/items/ee6fc39a723c36131d5b)
- DevOps
    - [Databricks Connect（Python）環境を Windows Subsystem for Linux (WSL)上に特定の目的のみに利用する Linux 環境に構築する手順 - Qiita](https://qiita.com/manabian/items/e72832277c0aa00735dc)
    - [Databricks の CI （Continuous Integration（継続的インテグレーション）） パイプラインを Azure DevOps (Pipelines) にて構築する手順 - Qiita](https://qiita.com/manabian/items/5ea34757cacda0df98a2)

**レポジトリー**
- [databricks_development_practices (github.com)](https://github.com/manabian-/databricks_development_practices)

**Azure DevOps( CI/CD パイプライン実行環境)**
- [Azure Pipelines の公開環境](https://dev.azure.com/azuredevopssub/public_databricks_cicd_pipelines/_build/results?buildId=7&view=results)