Databricks Notebook を実行してデータを変換する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューションである Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

パイプラインの Azure Databricks Notebook アクティビティによって、Azure Databricks ワークスペースで Databricks Notebook が実行されます。 この記事は、データ変換とサポートされる変換アクティビティの概要を説明する、 データ変換アクティビティ に関する記事に基づいています。  Azure Databricks は、Apache Spark を実行するための管理されたプラットフォームです。

Databricks ノートブックは、JSON を使った ARM テンプレートを使って作成するか、Azure Data Factory Studio のユーザー インターフェイスから直接作成することができます。 ユーザー インターフェイスを使用して Databricks ノートブック アクティビティを作成する方法のステップバイステップのウォークスルーについては、チュートリアル「Azure Data Factory で Databricks Notebook アクティビティを使用して Databricks ノートブックを実行する」を参照してください。

Azure Databricks の Notebook アクティビティを UI 付きパイプラインに追加する

パイプラインで Notebook アクティビティを Azure Databricks するには、次の手順を実行します。

  1. パイプライン アクティビティ ペインで Notebook を検索し、ノートブック アクティビティをパイプライン キャンバスにドラッグします。

  2. まだ選択されていない場合は、キャンバスで新しい Notebook アクティビティを選択します。

  3. [新しい Azure Databricks] タブを選択し、Notebook アクティビティを実行 Azure Databricks 新しいリンクされたサービスを選択または作成します。

    Notebook アクティビティの UI を示しています。

  4. [設定] タブを選択し、Azure Databricks で実行するノートブック パス、ノートブックに渡す省略可能な基本パラメーター、およびジョブを実行するためにクラスターにインストールされる追加ライブラリを指定します。

    Notebook アクティビティの [設定] タブの UI を表示。

Databricks Notebook アクティビティの定義

Databricks Notebook アクティビティのサンプルの JSON 定義を次に示します。

{
    "activity": {
        "name": "MyActivity",
        "description": "MyActivity description",
        "type": "DatabricksNotebook",
        "linkedServiceName": {
            "referenceName": "MyDatabricksLinkedservice",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "notebookPath": "/Users/user@example.com/ScalaExampleNotebook",
            "baseParameters": {
                "inputpath": "input/folder1/",
                "outputpath": "output/"
            },
            "libraries": [
                {
                "jar": "dbfs:/docs/library.jar"
                }
            ]
        }
    }
}

Databricks Notebook アクティビティのプロパティ

次の表で、JSON 定義で使用される JSON プロパティについて説明します。

プロパティ 説明 必須
name パイプラインのアクティビティの名前。 はい
description アクティビティの動作を説明するテキスト。 いいえ
type Databricks Notebook アクティビティでは、アクティビティの種類は DatabricksNotebook です。 はい
linkedServiceName Databricks Notebook が実行されている Databricks リンク サービスの名前です。 このリンクされたサービスの詳細については、計算のリンクされたサービスに関する記事をご覧ください。 はい
notebookPath Databricks ワークスペースで実行するノートブックの絶対パスです。 このパスはスラッシュで始まる必要があります。 はい
baseParameters キーと値ペアの配列です。 基本パラメーターは、各アクティビティの実行に使うことができます。 指定されていないパラメーターをノートブックが受け取った場合は、ノートブックの既定値が使われます。 パラメーターについて詳しくは、Databricks Notebook に関する記事をご覧ください。 いいえ
libraries ジョブを実行するクラスターにインストールされるライブラリのリスト。 <文字列, オブジェクト> の配列を指定できます。 いいえ

Databricks アクティビティでサポートされるライブラリ

前述の Databricks アクティビティ定義では、jareggwhlmavenpypicran というライブラリの種類を指定しています。

{
    "libraries": [
        {
            "jar": "dbfs:/mnt/libraries/library.jar"
        },
        {
            "egg": "dbfs:/mnt/libraries/library.egg"
        },
        {
            "whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
        },
        {
            "whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
        },
        {
            "maven": {
                "coordinates": "org.jsoup:jsoup:1.7.2",
                "exclusions": [ "slf4j:slf4j" ]
            }
        },
        {
            "pypi": {
                "package": "simplejson",
                "repo": "http://my-pypi-mirror.com"
            }
        },
        {
            "cran": {
                "package": "ada",
                "repo": "https://cran.us.r-project.org"
            }
        }
    ]
}

ライブラリの種類の詳細については、Databricks のドキュメントを参照してください。

ノートブックとパイプラインの間でのパラメーターの受け渡し

Databricks アクティビティの baseParameters プロパティを使用して、パラメーターをノートブックに渡すことができます。

場合によっては、ノートブックからサービスに特定の値を戻す必要があり、サービスの制御フロー (条件チェック) のために使用したり、ダウンストリームのアクティビティで使用したりできます (サイズの上限は 2 MB)。

  1. ノートブックでは、dbutils.notebook.exit("returnValue") を呼び出すことができ、対応する "returnValue" がサービスに返されます。

  2. @{activity('databricks notebook activity name').output.runOutput} などの式を使用して、サービスで出力を使用できます。

    重要

    JSON オブジェクトを渡す場合は、プロパティ名を追加することによって値を取得できます。 例: @{activity('databricks notebook activity name').output.runOutput.PropertyName}

Databricks でライブラリをアップロードする方法

ワークスペース UI を使用できます。

  1. Databricks ワークスペース UI を使用する

  2. UI を使用して追加されたライブラリの dbfs パスを取得するには、Databricks CLI を使用します。

    UI を使用する場合、通常、Jar ライブラリは dbfs:/FileStore/jars に保存されます。 CLI databricks fs ls dbfs:/FileStore/job-jars を使用してすべてを一覧表示することができます

または、Databricks CLI を使用できます。

  1. Databricks CLI を使用したライブラリのコピーに関するページの手順を行います

  2. Databricks CLI を使用します (インストール手順)

    たとえば、JAR を dbfs にコピーする場合: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar