Azure Databricks で Jar アクティビティを実行してデータを変換するTransform data by running a Jar activity in Azure Databricks

Data Factory パイプライン の Azure Databricks Jar アクティビティは、Azure Databricks クラスターで Spark Jar を実行します。The Azure Databricks Jar Activity in a Data Factory pipeline runs a Spark Jar in your Azure Databricks cluster. この記事は、データ変換の概要とサポートされる変換アクティビティを説明している データ変換アクティビティ に関する記事に基づいています。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.

この機能の概要とデモンストレーションについては、以下の 11 分間の動画を視聴してください。For an eleven-minute introduction and demonstration of this feature, watch the following video:

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

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

{
    "name": "SparkJarActivity",
    "type": "DatabricksSparkJar",
    "linkedServiceName": {
        "referenceName": "AzureDatabricks",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "mainClassName": "org.apache.spark.examples.SparkPi",
        "parameters": [ "10" ],
        "libraries": [
            {
                "jar": "dbfs:/docs/sparkpi.jar"
            }
        ]
    }
}

Databricks Jar アクティビティのプロパティDatabricks Jar 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 Jar アクティビティでは、アクティビティの種類は DatabricksSparkJar です。For Databricks Jar Activity, the activity type is DatabricksSparkJar. はいYes
linkedServiceNamelinkedServiceName Jar アクティビティが実行されている Databricks リンク サービスの名前です。Name of the Databricks Linked Service on which the Jar activity runs. このリンクされたサービスの詳細については、 コンピューティングのリンクされたサービス に関する記事をご覧ください。To learn about this linked service, see Compute linked services article. はいYes
mainClassNamemainClassName 実行される main メソッドを含むクラスのフル ネーム。The full name of the class containing the main method to be executed. このクラスは、ライブラリとして提供される JAR に含まれている必要があります。This class must be contained in a JAR provided as a library. はいYes
parametersparameters main メソッドに渡されるパラメーター。Parameters that will be passed to the main method. 文字列の配列です。This is an array of strings. いいえ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> はい (mainClassName メソッドを少なくとも 1 つ含む)Yes (at least one containing the mainClassName method)

注意

既知の問題 - 同時 Databricks Jar アクティビティの実行に同じ対話型クラスターを使用する場合 (クラスターの再起動なし)、Databricks には、最初のアクティビティのパラメーターが、次のアクティビティでも使用されるという既知の問題があります。Known Issue - When using the same Interactive cluster for running concurrent Databricks Jar activities (without cluster restart), there is a known issue in Databricks where in parameters of the 1st activity will be used by following activities as well. そのため、後続のジョブに渡されるパラメーターが正しくありません。Hence resulting to incorrect parameters being passed to the subsequent jobs. これを回避するには、代わりにジョブ クラスターを使用します。To mitigate this use a Job cluster instead.

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

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

{
    "libraries": [
        {
            "jar": "dbfs:/mnt/libraries/library.jar"
        },
        {
            "egg": "dbfs:/mnt/libraries/library.egg"
        },
        {
            "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 refer Databricks documentation for library types.

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 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/job-jars を使用してすべてを一覧表示することができますYou can list all through the CLI: databricks fs ls dbfs:/FileStore/job-jars

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

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

例 - JAR を dbfs にコピーする: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jarExample - copying JAR to dbfs: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar