本文說明如何在可存取 Google 服務的機器或自管虛擬機器上安裝及使用 JupyterLab 擴充功能。並說明如何開發及部署無伺服器 Spark Notebook 程式碼。
只要幾分鐘就能安裝擴充功能,享有下列功能:
- 啟動無伺服器 Spark 和 BigQuery 筆記本,快速開發程式碼
- 在 JupyterLab 中瀏覽及預覽 BigQuery 資料集
- 在 JupyterLab 中編輯 Cloud Storage 檔案
- 在 Composer 中排定筆記本執行時間
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
從
python.org/downloads
下載並安裝 Python 3.11 以上版本。- 確認 Python 3.11 以上版本的安裝狀態。
python3 --version
- 確認 Python 3.11 以上版本的安裝狀態。
將 Python 環境虛擬化。
pip3 install pipenv
- 建立安裝資料夾。
mkdir jupyter
- 切換至安裝資料夾。
cd jupyter
- 建立虛擬環境。
pipenv shell
- 建立安裝資料夾。
在虛擬環境中安裝 JupyterLab。
pipenv install jupyterlab
安裝 JupyterLab 擴充功能。
pipenv install bigquery-jupyter-plugin
jupyter lab
瀏覽器會開啟 JupyterLab Launcher 頁面。其中包含「Dataproc 工作和工作階段」部分。如果您有權存取 Dataproc 無伺服器筆記本或 Dataproc 叢集,且在專案中執行 Jupyter 選用元件,則這份報告也可能包含 Dataproc 無伺服器筆記本和 Dataproc 叢集筆記本專區。
根據預設,Spark Interactive 工作階段的 Dataproc Serverless 會在您在「事前準備」一文中執行
gcloud init
時設定的專案和區域中執行。您可以前往 JupyterLab 的「Settings」>「Google Dataproc Settings」頁面,變更工作階段的專案和區域設定。您必須重新啟動擴充功能,變更才會生效。
在 JupyterLab Launcher 頁面的「Dataproc Serverless Notebooks」部分,按一下
New runtime template
資訊卡。填寫「執行階段範本」表單。
範本資訊:
- 顯示名稱、執行階段 ID 和說明:接受或填入範本顯示名稱、範本執行階段 ID 和範本說明。
執行設定:選取「使用者帳戶」,以使用者身分 (而非 Dataproc 服務帳戶身分) 執行 Notebook。
- 服務帳戶:如果您未指定服務帳戶,系統會使用 Compute Engine 的預設服務帳戶。
- 執行階段版本:確認或選取執行階段版本。
- 自訂容器映像檔:您可以選擇指定自訂容器映像檔的 URI。
- Python 套件存放區:根據預設,當使用者在筆記本中執行
pip
安裝指令時,Python 套件會從 PyPI 提取式快取下載及安裝。您可以指定貴機構的私人構件存放區,讓 Python 套件使用該存放區做為預設的 Python 套件存放區。
加密:接受預設的 Google-owned and Google-managed encryption key,或選取「客戶管理的加密金鑰」(CMEK)。如果是 CMEK,請選取並提供金鑰資訊。
網路設定:選取專案中的子網路,或從主機專案共用 (您可以透過 JupyterLab 的「Settings」>「Google Dataproc Settings」選單變更專案)。您可以指定要套用至指定聯播網的聯播網標記。請注意,Dataproc Serverless 會在指定子網路中啟用私人 Google 存取權 (PGA)。如需網路連線需求,請參閱 Dataproc Serverless for Spark 網路設定。
工作階段設定:您可以選擇填入這些欄位,限制使用範本建立的工作階段持續時間。
- 閒置時間上限:工作階段結束前的閒置時間上限。允許的範圍:10 分鐘至 336 小時 (14 天)。
- 工作階段時間上限:工作階段終止前的最大生命週期。允許的範圍:10 分鐘至 336 小時 (14 天)。
Metastore:如要在工作階段中使用 Dataproc Metastore 服務,請選取 Metastore 專案 ID 和服務。
永久記錄伺服器:您可以選取可用的 永久 Spark 記錄伺服器,以便在工作階段期間和之後存取工作階段記錄。
Spark 屬性:您可以選取並新增 Spark 資源分配、自動調度或 GPU 屬性。按一下「新增資源」即可新增其他 Spark 資源。詳情請參閱「Spark 屬性」。
標籤:按一下每個標籤的「Add Label」,即可在使用範本建立的工作階段中設定標籤。
按一下「儲存」建立範本。
如何查看或刪除執行階段範本。
- 依序按一下「設定」>「Google Dataproc 設定」。
- 「Dataproc Serverless Runtime Templates」(Dataproc Serverless 執行階段範本) 區段會顯示執行階段範本清單。
- 按一下範本名稱,即可查看範本詳細資料。
- 您可以透過範本的「動作」選單刪除範本。
開啟並重新載入 JupyterLab Launcher 頁面,即可在 JupyterLab Launcher 頁面上查看已儲存的筆記本範本資訊卡。
建立包含執行階段範本設定的 YAML 檔案。
簡易 YAML
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
複雜的 YAML
description: Example session template environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: subnetworkUri: default networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "2.3" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
在本機或 Cloud Shell 中執行下列 gcloud beta dataproc session-templates import 指令,即可從 YAML 檔案建立工作階段 (執行階段) 範本:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- 如要瞭解如何描述、列出、匯出及刪除工作階段範本,請參閱 gcloud beta dataproc session-templates 指令。
按一下資訊卡,即可建立 Dataproc Serverless 工作階段並啟動筆記本。建立工作階段完成後,如果 Notebook 核心可供使用,核心狀態就會從
Starting
變更為Idle (Ready)
。編寫及測試筆記本程式碼。
在 PySpark 筆記本儲存格中複製並貼上下列 PySpark
Pi estimation
程式碼,然後按下 Shift+Enter 鍵執行程式碼。import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
筆記本結果:
建立及使用筆記本後,您可以按一下「Kernel」分頁中的「Shut Down Kernel」,終止筆記本工作階段。
- 如要重複使用工作階段,請依序點選「File」>「New」,然後選擇「Notebook」,建立新的筆記本。建立新筆記本後,請從核心選取對話方塊中選擇現有工作階段。新的筆記本會重複使用工作階段,並保留先前筆記本的工作階段脈絡。
如果您沒有終止工作階段,Dataproc 會在工作階段閒置計時器到期時終止工作階段。您可以在執行階段範本設定中設定工作階段閒置時間。預設的工作階段閒置時間為一小時。
按一下「Dataproc 叢集筆記本」部分中的資訊卡。
當核心狀態從
Starting
變更為Idle (Ready)
時,您就可以開始編寫及執行筆記本程式碼。建立及使用筆記本後,您可以按一下「Kernel」分頁中的「Shut Down Kernel」,終止筆記本工作階段。
如要存取 Cloud Storage 瀏覽器,請按一下 JupyterLab「Launcher」頁面側欄中的 Cloud Storage 瀏覽器圖示,然後按兩下資料夾即可查看內容。
您可以按一下 Jupyter 支援的檔案類型,開啟並編輯這些檔案。儲存檔案變更時,系統會將變更寫入 Cloud Storage。
如要建立新的 Cloud Storage 資料夾,請按一下新資料夾圖示,然後輸入資料夾名稱。
如要將檔案上傳至 Cloud Storage 值區或資料夾,請按一下上傳圖示,然後選取要上傳的檔案。
按一下 JupyterLab Launcher 頁面中的 Dataproc Serverless Notebooks 或 Dataproc Cluster Notebook 專區中的 PySpark 資訊卡,即可開啟 PySpark 筆記本。
在 JupyterLab 啟動器頁面上,點選「Dataproc 叢集筆記本」部分的 Python 核心卡片,即可開啟 Python 筆記本。
按一下 JupyterLab Launcher 頁面「Dataproc 叢集筆記本」部分中的 Apache Toree 資訊卡,即可開啟 Scala 程式碼開發的筆記本。
圖 1. JupyterLab Launcher 頁面中的 Apache Toree 核心資訊卡。 - 在 Dataproc Serverless 筆記本中開發及執行 Spark 程式碼。
- 建立及管理 Dataproc Serverless 執行階段 (工作階段) 範本、互動式工作階段和批次工作負載。
- 開發及執行 BigQuery 筆記本。
- 瀏覽、檢查及預覽 BigQuery 資料集。
- 下載並安裝 VS Code。
- 開啟 VS Code,然後在活動列中按一下「Extensions」。
使用搜尋列找出 Jupyter 擴充功能,然後按一下「安裝」。Microsoft 的 Jupyter 擴充功能是必要依附元件。
- 開啟 VS Code,然後在活動列中按一下「Extensions」。
使用搜尋列找出「Code」Google Cloud 擴充功能,然後按一下「安裝」。
如果系統提示,請重新啟動 VS Code。
- 開啟 VS Code,然後在活動列中按一下 Google Cloud 「Code」。
- 開啟「Dataproc」Dataproc部分。
- 按一下「登入 Google Cloud」。系統會將您重新導向至登入頁面,請使用您的憑證登入。
- 使用頂層應用程式工作列,依序前往「Code」>「Settings」>「Settings」>「Extensions」。
- 找到「Code」Google Cloud ,然後按一下「Manage」圖示開啟選單。
- 選取 [設定]。
- 在「Project」和「Dataproc Region」欄位中,輸入 Google Cloud 專案名稱和要用來開發 Notebook 及管理 Dataproc Serverless 資源的區域。
- 開啟 VS Code,然後在活動列中按一下 Google Cloud 「Code」。
- 開啟「Notebooks」專區,然後按一下「New Serverless Spark Notebook」。
- 選取或建立要用於筆記本工作階段的全新執行階段 (工作階段) 範本。
系統會建立新的
.ipynb
檔案,並在編輯器中開啟該檔案,其中包含範例程式碼。您現在可以在 Dataproc Serverless 筆記本中編寫及執行程式碼。
- 開啟 VS Code,然後在活動列中按一下 Google Cloud 「Code」。
開啟「Dataproc」Dataproc專區,然後按一下下列資源名稱:
- 叢集:建立及管理叢集和工作。
- 無伺服器:建立及管理批次工作負載和互動式工作階段。
- Spark 執行階段範本:建立及管理工作階段範本。
在 Dataproc 無伺服器基礎架構上執行筆記本程式碼
在 Cloud Composer 上排定筆記本執行作業
將批次工作提交至 Dataproc Serverless 基礎架構,或提交至 Compute Engine 叢集中的 Dataproc。
按一下筆記本右上方的「Job Scheduler」按鈕。
填寫「建立排定工作」表單,提供下列資訊:
- 筆記本執行工作的專屬名稱
- 用於部署筆記本的 Cloud Composer 環境
- 如果 Notebook 已參數化,請輸入參數
- 要用來執行 Notebook 的 Dataproc 叢集或無伺服器執行階段範本
- 如果選取叢集,則在 Notebook 在叢集中執行完畢後是否要停止叢集
- 如果首次執行 Notebook 失敗,重試次數和重試延遲時間 (以分鐘為單位)
- 要傳送的執行通知和收件者名單。系統會使用 Airflow SMTP 設定傳送通知。
- 筆記本執行排程
按一下 [建立]。
工作成功排程後,工作名稱就會顯示在 Cloud Composer 環境中已排程工作清單中。
在 JupyterLab Launcher 頁面上,點選「Dataproc Jobs and Sessions」部分中的「Serverless」資訊卡。
按一下「批次」分頁標籤,然後點選「建立批次」,並填入「批次資訊」欄位。
按一下「提交」,即可提交工作。
在 JupyterLab Launcher 頁面的「Dataproc Jobs and Sessions」部分中,按一下「Clusters」資訊卡。
依序點選「Jobs」分頁標籤和「Submit Job」。
選取「叢集」,然後填寫「工作」欄位。
按一下「提交」,即可提交工作。
- 按一下「Serverless」資訊卡。
- 按一下「工作階段」分頁,然後點選工作階段 ID 即可開啟「工作階段詳細資料」頁面,查看工作階段屬性、在 Logs Explorer 中查看 Google Cloud 記錄,以及終止工作階段。注意:系統會建立專屬的 Dataproc Serverless 工作階段,用於啟動每個 Dataproc Serverless 筆記本。
- 按一下「Batches」分頁標籤,即可查看目前專案和區域中的 Dataproc Serverless 批次清單。按一下批次 ID 即可查看批次詳細資料。
- 按一下「叢集」資訊卡。選取「叢集」分頁標籤,即可列出目前專案和區域中 Compute Engine 叢集中的有效 Dataproc。您可以按一下「動作」欄中的圖示,啟動、停止或重新啟動叢集。按一下叢集名稱,查看叢集詳細資料。您可以點選「動作」欄中的圖示,複製、停止或刪除工作。
- 按一下「Jobs」資訊卡,即可查看目前專案中的工作清單。按一下工作 ID 即可查看工作詳細資料。
安裝 JupyterLab 擴充功能
您可以在可存取 Google 服務的機器或 VM 上安裝及使用 JupyterLab 擴充功能,例如本機機器或 Compute Engine VM 執行個體。
如要安裝擴充功能,請按照下列步驟操作:
建立 Dataproc Serverless 執行階段範本
Dataproc Serverless 執行階段範本 (也稱為工作階段範本) 包含在工作階段中執行 Spark 程式碼的設定。您可以使用 Jupyterlab 或 gcloud CLI 建立及管理執行階段範本。
JupyterLab
gcloud
啟動及管理筆記本
安裝 Dataproc JupyterLab 擴充功能後,您可以點選 JupyterLab Launcher 頁面上的範本卡片,執行以下操作:
在 Dataproc Serverless 上啟動 Jupyter 筆記本
JupyterLab Launcher 頁面中的「Dataproc Serverless Notebooks」部分會顯示對應至 Dataproc Serverless 執行階段範本的筆記本範本資訊卡 (請參閱「建立 Dataproc Serverless 執行階段範本」)。

在 Dataproc on Compute Engine 叢集中啟動筆記本
如果您建立了 Compute Engine 上的 Dataproc Jupyter 叢集,JupyterLab Launcher 頁面就會包含Dataproc 叢集 Notebook 專區,其中包含預先安裝的核心卡片。

如要在 Dataproc on Compute Engine 叢集中啟動 Jupyter 筆記本,請按照下列步驟操作:
管理 Cloud Storage 中的輸入和輸出檔案
分析探索性資料和建構機器學習模型時,通常會涉及檔案型輸入和輸出。Dataproc Serverless 會存取 Cloud Storage 中的這些檔案。
開發 Spark 筆記本程式碼
安裝 Dataproc JupyterLab 擴充功能後,您可以從 JupyterLab Launcher 頁面啟動 Jupyter 筆記本,以便開發應用程式程式碼。
PySpark 和 Python 程式碼開發
Dataproc Serverless 和 Compute Engine 叢集中的 Dataproc 支援 PySpark 核心。Dataproc on Compute Engine 也支援 Python 核心。
SQL 程式碼開發
如要開啟 PySpark 筆記本來編寫及執行 SQL 程式碼,請在 JupyterLab Launcher 頁面的 Dataproc Serverless Notebooks 或 Dataproc Cluster Notebook 部分,按一下 PySpark 核心資訊卡。
Spark SQL 魔法:由於啟動 Dataproc 無伺服器 Notebook 的 PySpark 核心會預先載入 Spark SQL 魔法,因此您可以直接在儲存格頂端輸入 %%sparksql magic
,然後在儲存格中輸入 SQL 陳述式,而無需使用 spark.sql('SQL STATEMENT').show()
包裝 SQL 陳述式。
BigQuery SQL:BigQuery Spark 連接器可讓筆記本程式碼從 BigQuery 資料表載入資料,在 Spark 中執行分析,然後將結果寫入 BigQuery 資料表。

Dataproc Serverless 2.2
及後續執行階段都包含 BigQuery Spark 連接器。如果您使用較早的執行階段啟動 Dataproc Serverless 程式本,只要將下列 Spark 屬性新增至 Dataproc Serverless 執行階段範本,即可安裝 Spark BigQuery 連接器:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Scala 程式碼開發
使用 2.0
以上版本映像檔建立的 Compute Engine 叢集上的 Dataproc 會納入 Apache Toree,這是 Jupyter Notebook 平台的 Scala 核心,可提供互動式 Spark 存取功能。
使用 Visual Studio Code 擴充功能開發程式碼
您可以使用 Google Cloud Visual Studio Code (VS Code) 擴充功能執行下列操作:
Visual Studio Code 擴充功能是免費的,但您使用任何Google Cloud 服務 (包括 Dataproc、Dataproc Serverless 和 Cloud Storage 資源) 時,都會產生費用。
搭配使用 VS Code 和 BigQuery:您也可以搭配使用 VS Code 和 BigQuery,執行下列操作:
事前準備
安裝 Google Cloud 擴充功能
Google Cloud Code 圖示現在會顯示在 VS Code 活動列中。
設定擴充功能
開發 Dataproc Serverless 筆記本
建立及管理 Dataproc Serverless 資源
資料集探索工具
使用 JupyterLab 資料集探索器查看 BigLake 中繼資料庫資料集。
如要開啟 JupyterLab 資料集探索器,請按一下側欄中的圖示。

您可以在資料集探索器中搜尋資料庫、資料表或資料欄。按一下資料庫、資料表或欄名稱,即可查看相關聯的中繼資料。

部署程式碼
安裝 Dataproc JupyterLab 擴充功能後,您可以使用 JupyterLab 執行下列操作:
在 Cloud Composer 上排定筆記本執行作業
請完成下列步驟,在 Cloud Composer 上排定筆記本程式碼,以便在 Dataproc Serverless 或 Compute Engine 上的 Dataproc 叢集中以批次工作形式執行。
將批次工作提交至 Dataproc Serverless
將批次工作提交至 Dataproc on Compute Engine 叢集
查看及管理資源
安裝 Dataproc JupyterLab 擴充功能後,您就可以在 JupyterLab Launcher 頁面的「Dataproc 工作和工作階段」部分,查看及管理 Compute Engine 上的 Dataproc Serverless 和 Dataproc。
按一下「Dataproc 工作和工作階段」部分,即可顯示「叢集」和「無伺服器」資訊卡。
如要查看及管理 Dataproc Serverless 工作階段,請按照下列步驟操作:
如要查看及管理 Dataproc Serverless 批次,請按照下列步驟操作:
如要查看及管理 Dataproc on Compute Engine 叢集,請按照下列步驟操作:
如要查看及管理 Compute Engine 上的 Dataproc 工作,請按照下列步驟操作: