次の方法で共有


Lakeflow ジョブを使用して最初のワークフローを作成する

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

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

要件

ワークスペースが Unity Catalog 対応で、サーバーレス ジョブが有効になっている場合、既定では、ジョブはサーバーレス コンピューティングで実行されます。 サーバーレス コンピューティングでジョブを実行するためにクラスター作成アクセス許可は必要ありません。

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

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

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

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

ノートブックを作成する

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

データの取得と保存

サンプル データセットを取得して Unity カタログに保存するノートブックを作成するには:

  1. サイドバーで[新規]アイコンをクリックし、[ノートブック]をクリックします。 Databricks により、既定のフォルダーに新しい空のノートブックが作成され開かれます。 既定の言語は、最近使用した言語であり、ノートブックは、最近使用したコンピューティング リソースに自動的にアタッチされます。

  2. (省略可能)ノートブックの名前を変更する 名前データを取得します。

  3. 必要に応じて、既定の言語を Python に変更します

  4. 次の 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 コードは、前の手順で保存したデータを読み取り、テーブルを作成します。 また、テーブル内のデータをフィルター処理するために使用できるウィジェットも作成されます。

    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. ワークスペースで、[ワークフロー] アイコンをクリックします。サイドバーのジョブとパイプライン

  2. [ 作成]、[ ジョブ] の順にクリックします。 [ タスク ] タブが空の作業ウィンドウと共に表示されます。

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

  3. (省略可能)ジョブの名前 (既定では New Job <date-time>) をジョブ名に置き換えます。

  4. [タスク名] フィールドに、タスクの名前を入力します (たとえば、retrieve-baby-namesなど)。

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

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

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

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

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

  1. [ + タスクの追加]>Notebook をクリックします。
  2. [タスク名] フィールドに、タスクの名前を入力します (たとえば、filter-baby-names など)。
  3. [パス] で、ファイル ブラウザーを使用して、作成した 2 つ目のノートブックを見つけ、ノートブック名をクリックして [確認] をクリックします。
  4. [パラメーター] の下の [追加] をクリックします。 [キー] フィールドに「year」と入力します。 “” フィールドに「2014」と入力します。
  5. [タスクの作成] をクリックします。

ジョブの実行

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

実行の詳細を表示する

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

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

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

別のパラメーターを使用して実行する

ジョブを再実行し、別の年の赤ちゃんの名前をフィルター処理するには、次のようにします。

  1. [今すぐ実行] の横にある [Blue Down Caret] をクリックし、[別の設定で今すぐ実行] を選択します。
  2. ” フィールドに「2015」と入力します。
  3. [実行] をクリックします。