Databricks Notebook を実行してデータを変換するTransform data by running a Databricks notebook

Data Factory パイプラインの Azure Databricks Notebook アクティビティは、Azure Databricks ワークスペースで Databricks Notebook を実行します。The Azure Databricks Notebook Activity in a Data Factory pipeline runs a Databricks notebook in your Azure Databricks workspace. この記事は、データ変換の概要とサポートされる変換アクティビティを説明している データ変換アクティビティ に関する記事に基づいています。This article builds on the data transformation activities article, which presents a general overview of data transformation and the supported transformation activities. Azure Databricks は、Apache Spark を実行するための管理されたプラットフォームです。 Azure Databricks is a managed platform for running Apache Spark.

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

Databricks Notebook アクティビティのサンプルの JSON 定義を次に示します。Here is the sample JSON definition of a Databricks Notebook Activity:

{
    "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 アクティビティのプロパティDatabricks Notebook activity properties

次の表で、JSON 定義で使用される JSON プロパティについて説明します。The following table describes the JSON properties used in the JSON definition:

プロパティProperty 説明Description 必須Required
名前name パイプラインのアクティビティの名前。Name of the activity in the pipeline. はいYes
descriptiondescription アクティビティの動作を説明するテキスト。Text describing what the activity does. いいえNo
typetype Databricks Notebook アクティビティでは、アクティビティの種類は DatabricksNotebook です。For Databricks Notebook Activity, the activity type is DatabricksNotebook. はいYes
linkedServiceNamelinkedServiceName Databricks Notebook が実行されている Databricks リンク サービスの名前です。Name of the Databricks Linked Service on which the Databricks notebook runs. このリンクされたサービスの詳細については、 コンピューティングのリンクされたサービス に関する記事をご覧ください。To learn about this linked service, see Compute linked services article. はいYes
notebookPathnotebookPath Databricks ワークスペースで実行するノートブックの絶対パスです。The absolute path of the notebook to be run in the Databricks Workspace. このパスはスラッシュで始まる必要があります。This path must begin with a slash. はいYes
baseParametersbaseParameters キーと値ペアの配列です。An array of Key-Value pairs. 基本パラメーターは、各アクティビティの実行に使うことができます。Base parameters can be used for each activity run. 指定されていないパラメーターをノートブックが受け取った場合は、ノートブックの既定値が使われます。If the notebook takes a parameter that is not specified, the default value from the notebook will be used. パラメーターについて詳しくは、Databricks Notebook に関する記事をご覧ください。Find more on parameters in Databricks Notebooks. いいえNo
librarieslibraries ジョブを実行するクラスターにインストールされるライブラリのリスト。A list of libraries to be installed on the cluster that will execute the job. <文字列, オブジェクト> の配列を指定できます。It can be an array of <string, object>. いいえNo

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

前述の Databricks アクティビティ定義では、jareggwhlmavenpypicran というライブラリの種類を指定しています。In the above Databricks activity definition, you specify these library types: jar, egg, whl, maven, pypi, cran.

{
    "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 のドキュメントを参照してください。For more details, see the Databricks documentation for library types.

ノートブックと Data Factory の間でパラメーターを渡すPassing parameters between notebooks and Data Factory

Databricks アクティビティの baseParameters プロパティを使用して、Data Factory のパラメーターをノートブックに渡すことができます。You can pass data factory parameters to notebooks using baseParameters property in databricks activity.

場合によっては、ノートブックから Data Factory に特定の値を戻すことが必要になる場合があります。これは、Data Factory の制御フロー (条件チェック) に使用したり、ダウンストリームのアクティビティで使用したりできます (サイズの上限は 2 MB)。In certain cases you might require to pass back certain values from notebook back to data factory, which can be used for control flow (conditional checks) in data factory or be consumed by downstream activities (size limit is 2MB).

  1. ノートブックでは、dbutils.notebook.exit("returnValue") を呼び出すことができ、対応する "returnValue" が Data Factory に返されます。In your notebook, you may call dbutils.notebook.exit("returnValue") and corresponding "returnValue" will be returned to data factory.

  2. '@activity('databricks notebook activity name').output.runOutput' などの式を使用して、Data Factory で出力を使用できます。You can consume the output in data factory by using expression such as '@activity('databricks notebook activity name').output.runOutput'.

    重要

    JSON オブジェクトを渡す場合は、プロパティ名を追加することによって値を取得できます。If you are passing JSON object you can retrieve values by appending property names. 例: '@activity('databricks notebook activity name').output.runOutput.PropertyName'Example: '@activity('databricks notebook activity name').output.runOutput.PropertyName'

Databricks でライブラリをアップロードする方法How to upload a library in Databricks

Databricks ワークスペース UI の使用Using Databricks workspace UI

UI を使用して追加されたライブラリの dbfs パスを取得するには、Databricks CLI (インストール) を使用します。To obtain the dbfs path of the library added using UI, you can use the Databricks CLI (installation).

UI を使用する場合、通常、Jar ライブラリは dbfs:/FileStore/jars に保存されます。Typically, the Jar libraries are stored under dbfs:/FileStore/jars while using the UI. CLI databricks fs ls dbfs:/FileStore/jars を使用してすべてを一覧表示することができます。You can list all through the CLI: databricks fs ls dbfs:/FileStore/jars.

Databricks CLI を使用したライブラリのコピーCopy library using Databricks CLI

例: databricks fs cp SparkPi-assembly-0.1.jar dbfs:/FileStore/jarsExample: databricks fs cp SparkPi-assembly-0.1.jar dbfs:/FileStore/jars