EMR Serverless Spark は、ノートブックを使用したインタラクティブな開発をサポートしています。このトピックでは、ノートブックの作成、実行、管理の方法について説明します。
前提条件
-
Alibaba Cloud アカウントが作成されていること。詳細については、Alibaba Cloud アカウントの登録をご参照ください。
-
必要なロールの権限付与が完了していること。詳細については、「Alibaba Cloud アカウントのロール権限付与」をご参照ください。
-
ワークスペースとノートブックセッションインスタンスが作成されていること。詳細については、「ワークスペースの作成」および「ノートブックセッションの管理」をご参照ください。
操作手順
ステップ 1:テストファイルの準備
ノートブックタスクをすぐに開始できるように、このクイックスタートでは、次のステップで使用できるテストファイルをダウンロード用に提供しています。
employee.csv をクリックしてテストファイルをダウンロードします。
employee.csv ファイルには、従業員の名前、部署、給与のリストが含まれています。
ステップ 2:テストファイルのアップロード
データファイル (employee.csv) を Object Storage Service (OSS) コンソールにアップロードします。詳細については、「ファイルのアップロード」をご参照ください。
ステップ 3:ノートブックの開発と実行
-
EMR Serverless Spark ページで、左側のナビゲーションウィンドウにある Development をクリックします。
-
ノートブックを作成します。
-
Development タブで、
アイコンをクリックします。 -
表示されたダイアログボックスで名前を入力し、タイプとして [インタラクティブな開発] > [ノートブック] を選択してから、OK をクリックします。
-
-
右上隅で、実行中のノートブックセッションインスタンスを選択します。
ドロップダウンリストから Create Notebook Session を選択して、ノートブックセッションインスタンスを作成することもできます。ノートブックセッションの詳細については、「ノートブックセッションの管理」をご参照ください。
説明複数のノートブックで単一のセッションインスタンスとそのリソースを共有できるため、ノートブックごとに個別のインスタンスを作成する必要はありません。
-
データを処理し、可視化します。
PySpark
-
新しいノートブックの Python セルに次のコードをコピーします。
# 簡単な DataFrame を作成します。OSS パスをステップ 2 でアップロードしたファイルのパスに置き換えます。 df = spark.read.option("delimiter", ",").option("header", True).csv("oss://path/to/file") # DataFrame の最初の数行を表示します。 df.show(5) # 簡単な集約操作を実行します:各部門の給与総額を計算します。 sum_salary_per_department = df.groupBy("department").agg({"salary": "sum"}).show() -
Execute All Cells をクリックしてノートブックを実行します。
セルの横にある
アイコンをクリックして、単一のセルを実行することもできます。# 簡単な DataFrame を作成します。OSS パスをステップ 2 でアップロードしたファイルのパスに置き換えます。 df = spark.read.option("delimiter", ",").option("header", True).csv("oss://<yourBucketName>/<path>/employee.csv") # DataFrame の最初の数行を表示します。 df.show(5) +-------------+----------+------+ |employee_name|department|salary| +-------------+----------+------+ | James| Sales| 3000| | Michael| Sales| 4600| | Robert| Marketing| 4100| | Maria| Finance| 3000| | James| Sales| 3000| +-------------+----------+------+ only showing top 5 rows # 簡単な集約操作を実行します:各部門の給与総額を計算します。 sum_salary_per_department = df.groupBy("department").agg({"salary": "sum"}).show() +----------+-----------+ |department|sum(salary)| +----------+-----------+ | Sales| 12600.0| | Finance| 6900.0| | Marketing| 10400.0| +----------+-----------+ -
(任意) Spark UI を表示します。
セッションのドロップダウンリストで、現在のノートブックセッションインスタンスの
アイコンにカーソルを合わせ、Spark UI をクリックして Spark ジョブに関する情報を表示します。
可視化
説明ノートブックセッションには、matplotlib、numpy、pandas ライブラリがプリインストール済みです。別のサードパーティのライブラリを使用する必要がある場合は、「ノートブックでサードパーティの Python ライブラリを使用する」をご参照ください。
-
matplotlib ライブラリを使用してデータを可視化します。
import matplotlib.pyplot as plt l = sc.parallelize(range(20)).collect() plt.plot(l) plt.ylabel('some numbers') plt.show() -
Execute All Cells をクリックしてノートブックを実行します。
セルの横にある
アイコンをクリックして、単一のセルを実行することもできます。pip install matplotlibインストール出力:
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple Collecting matplotlibimport matplotlib.pyplot as plt l = sc.parallelize(range(20)).collect() plt.plot(l) plt.ylabel('some numbers') plt.show()コードが実行されると、Y 軸に「some numbers」というラベルが付いた折れ線グラフが表示されます。
-
ステップ 4:ノートブックの公開
-
実行が完了したら、右上隅の Publish をクリックします。
-
[公開] ダイアログボックスで、必須の詳細情報を入力し、OK をクリックしてノートブックを新しいバージョンとして保存します。