メインコンテンツまでスキップ

Lakeflow Jobsで初めてのワークフローを作成する

この記事では、 Lakeflow ジョブを使用して、サンプル データセットの読み取りと処理を行うタスクを調整する方法を示します。 このクイックスタートでは、次のことを行います。

  1. 新しいノートブックを作成し、年ごとの人気の赤ちゃんの名前を含むサンプルデータセットを取得するコードを追加する。
  2. サンプル データセットを Unity Catalog に保存します。
  3. 新しいノートブックを作成し、Unity Catalog からデータセットを読み取り、年でフィルター処理して結果を表示するコードを追加します。
  4. 新しいジョブを作成し、ノートブックを使って2つのタスクを設定する。
  5. ジョブを実行し、結果を表示する。

必要条件

ワークスペースが Unity Catalog に対応しており、 サーバレス ジョブ が有効になっている場合、デフォルトによって、サーバレス コンピュートでジョブが実行されます。 サーバレス コンピュートでジョブを実行するために、クラスター作成権限は必要ありません。

それ以外の場合は、ジョブ コンピュートを作成するための クラスター作成アクセス許可 、または汎用コンピュート リソースに対する アクセス許可 が必要です。

Unity Catalogボリューム が必要です。この記事では、カタログ内の default という名前のスキーマで my-volume という名前のボリュームの例を使用します main。Unity Catalog には、次のアクセス許可が必要です。

  • READ VOLUME と、my-volume ボリュームの場合は WRITE VOLUME、または ALL PRIVILEGES
  • USE SCHEMA または default スキーマの場合は ALL PRIVILEGES
  • USE CATALOG またはmainカタログのALL PRIVILEGES

これらのアクセス許可を設定するには、Databricks 管理者または Unity Catalog の特権とセキュリティ保護可能なオブジェクトを参照してください。

ノートブックを作成する

次の手順は、このワークフローで実行するノートブックを2つ作成します。

データの取得と保存

サンプル データセットを取得して Unity Catalog に保存するノートブックを作成するには、次のようにします。

  1. サイドバー 新しいアイコン新規」 をクリックしてから、「 ノートブック 」をクリックします。Databricks は、新しい空白のノートブックを作成して、デフォルト フォルダーに開きます。 デフォルト言語は、最後に使用した言語であり、ノートブックは、最後に使用したコンピュートリソースに自動的に添付されます。

  2. (オプション)ノートブックの名前を「 名前データの取得」に変更 します。

  3. 必要に応じて、 デフォルトの言語を Python に変更します

  4. 次のPythonコードをコピーして、ノートブックの最初のセルに貼り付けます。

    Python
    import requests

    response = requests.get('https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)

フィルタリングされたデータの読み取りと表示

データをフィルター処理して表示するノートブックを作成するには:

  1. サイドバー 新しいアイコン新規」 をクリックしてから、「 ノートブック 」をクリックします。

  2. (オプション)ノートブックの名前を フィルター名データ に変更します。

  3. 次の Python コードは、前のステップで保存したデータを読み取り、テーブルを作成します。 また、テーブル内のデータをフィルタリングするために使用できるウィジェットも作成されます。

    Python
    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))

ジョブを作成する

作成するジョブは、2 つのタスクで構成されます。

最初のタスクを作成するには:

  1. ワークスペースで、サイドバーの ワークフローアイコン。 Jobs & パイプライン をクリックします。

  2. [作成] 、[ ジョブ] の順にクリックします。 タスク タブは、空のタスクペインとともに表示されます。

注記

LakeFlowジョブUIオン の場合は、 ノートブック タイルをクリックして最初のタスクを設定します。[ ノートブック ] タイルが使用できない場合は、[ 別のタスクの種類を追加 ] をクリックして [ ノートブック ] を検索します。

  1. (オプション)ジョブの名前 (デフォルトは New Job <date-time> ) をジョブ名に置き換えます。

  2. タスク名 フィールドにタスクの名前を入力します。(例: retrieve-baby-names (赤ちゃんの名前を取得))

  3. 必要に応じて、[ タイプ ] ドロップダウン メニューから [ノートブック ] を選択します。

  4. [ ソース ] ドロップダウン メニューで [ ワークスペース] を選択すると、以前に保存したノートブックを使用できます。

  5. [パス] で、ファイル ブラウザーを使用して最初に作成したノートブックを検索し、ノートブック名をクリックして [確認] をクリックします。

  6. [ タスクの作成 ] をクリックします。画面の右上隅に通知が表示されます。

2 番目のタスクを作成するには:

  1. [ + タスクを追加 ] > [ノートブック ] をクリックします。
  2. タスク名 フィールドにタスクの名前を入力します。(例: filter-baby-names (赤ちゃんの名前をフィルタリング))
  3. [パス] で、ファイル ブラウザーを使用して作成した 2 番目のノートブックを見つけ、ノートブック名をクリックして [確認] をクリックします。
  4. パラメーター の下の 追加 をクリックします。 キー フィールドにyearを入力します。 フィールドに2014を入力します。
  5. タスクを作成 」をクリックします。

ジョブを実行する

ジョブをすぐに実行するには、右上隅の 「今すぐ�実行」ボタン をクリックします。

実行の詳細を表示する

  1. 実行 タブをクリックし 、[ 開始時刻] 列 のリンクをクリックして、表示する実行を開きます。

  2. クリッククリックして、いずれかのタスクをクリックして、出力と詳細を表示します。たとえば、 filter-baby-names タスクをクリックして、フィルター タスクの出力と実行の詳細を表示します。

    フィルター名の結果を表示

異なるパラメーターでの実行

ジョブを再実行し、別の年の赤ちゃんの名前をフィルタリングするには、次の手順を実行します:

  1. ブルーダウンキャレット [今すぐ実行] の横にある をクリックし、[ 別の設定で今すぐ実行] を選択します。
  2. フィールドに2015を入力します。
  3. 実行 をクリックします。