DatabricksにてToDoを含むトレーニング向けノートブックの稼働確認

## 概要
Databricksにてトレーニングを実施する際に参加者に入力してもらうセルを空白にしておくことがよくあり、そのノートブックが想定のコードを入力した際の動作を確認する方法を共有します。

トレーニング実施する際には、正解を記載したノートブック（下記図の左）と作業を実施してもらうノートブック（下記図の右）を用意することがよくあります。トレーニング時には処理を段階的にセルに記載するため、作業を実施してもらうノートブックが適切に動作することを確認する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ef71dc9f-7c68-79b1-0576-3d9981b29a34.png)

実施方法は、Gitのチェリーピック機能により`#to-do`のセルを`#Answer`に書き換え、Databricks ReposにてPullしたコードをDatabricks Jobsで実行する方法です。正常終了する場合には下記図の左のように、異常終了する場合には下記図の右のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/4bcc6f63-da69-ca15-227f-2ec8342f7338.png)


## 利用するサービスと機能

- Databricks
    - Databricks Repos
    - Databricks Jobs
- Gitサービス（今回はAzure Repos）

## 実施手順
### 1. Databricksにて`#to-do`のセルを`#Answer`に書き換えてDatabricks Jobを作成後PRを作成

#### 1-1. レポジトリを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/10ce920b-c0a1-69e8-703a-9cb09ef001c7.png)

#### 1-2. Databricks Reposにてレポジトリを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2a9c8a93-0368-407f-179e-485bbd504184.png)

#### 1-3. ノートブック（dbcファイル）を取り込む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/29535eac-f6bd-e4d9-2c07-f92f1de812fc.png)

#### 1-4. mainにプッシュ（Commit & Push）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/b30beb65-2326-f05b-333f-49650b3d5bc0.png)

#### 1-5. `#to-do`のセルを`#Answer`に書き換える
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/0af0fb04-1de8-9a72-6ae4-a9b14564886f.png)

#### 1-6. Databricks Jobsにてノートブックを実行するジョブを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/887e8fa0-b2b3-2c7f-4366-41c0e0eb45c5.png)

#### 1-7. 別のブランチ（本記事ではanswer）にプッシュ（Commit & Push）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a559301a-704a-69bb-0703-3c8942a9511c.png)

#### 1-8. Gitサービス（Azure DevOps）にて、Pull Requestを作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/25f0ffe6-097c-2fdc-21ea-3154a4beb45e.png)

※PRの作成のみを行い、マージ処理を行わない

### 2. 検証対象のノートブック（dbcファイル）をGitに連携後、チェリーピックで`#to-do`のセルを`#Answer`に書き換えてDatabricks Jobsを実行

#### 2-1. Reposのブランチをmainに設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a456e92b-67e2-70dc-ab49-4e3c7fd92f38.png)

#### 2-2. 既存のノートブックを削除した上で、検証対象のノートブック（dbcファイル）を取り込む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/630130a5-e3ee-e949-df22-4d79ca973cdc.png)

#### 2-3. mainにプッシュ（Commit & Push）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/5cbb34d0-8822-c261-3504-9dd1a786b648.png)

#### 2-4. 1の作成手順で作成したPRからチェリーピックを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f182361f-297d-bd43-c347-8cb3adcee20c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1145a6e1-67b7-1ea1-94e7-445bbf03bd30.png)

#### 2-5. PRにてマージ処理を実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/45887218-d217-6465-7461-a33c5460f740.png)

#### 2-6. Databricks ReposにてPullを実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/8cd68b73-5a2b-00e9-61df-f3046c46fc3b.png)

#### 2-7. `#to-do`のセルが`#Answer`に書き換わっていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f9e1970a-4683-4a8d-154c-4aaaa90808ff.png)

#### 2-8. Databricks Jobsを実行して正常終了することを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/bd9c5787-f7e7-ebb9-24d5-36fd974a9efc.png)


## よくある質問
特になし