Azure Databricks で Jar アクティビティを実行してデータを変換する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

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

この機能の概要とデモンストレーションについては、以下の 11 分間の動画を視聴してください。

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

Azure Databricks の Jar アクティビティをパイプラインで使用するには、以下の手順を実行します。

  1. パイプラインの [アクティビティ] ペイン内で Jar を検索し、Jar アクティビティをパイプライン キャンバスにドラッグします。

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

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

    Shows the UI for a Jar activity.

  4. [設定] タブを選択し、Azure Databricks で実行するクラス名、Jar に渡すオプションのパラメーター、およびジョブを実行するためにクラスターにインストールされるライブラリーを指定します。

    Shows the UI for the Settings tab for a Jar activity.

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

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

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

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

プロパティ Description 必須
name パイプラインのアクティビティの名前。 はい
description アクティビティの動作を説明するテキスト。 いいえ
type Databricks Jar アクティビティでは、アクティビティの種類は DatabricksSparkJar です。 はい
linkedServiceName Jar アクティビティが実行されている Databricks リンク サービスの名前です。 このリンクされたサービスの詳細については、計算のリンクされたサービスに関する記事をご覧ください。 はい
mainClassName 実行される main メソッドを含むクラスのフル ネーム。 このクラスは、ライブラリとして提供される JAR に含まれている必要があります。 1 つの JAR ファイルに複数のクラスを含めることができます。 各クラスには、main メソッドを含めることができます。 はい
parameters main メソッドに渡されるパラメーター。 このプロパティは文字列の配列です。 いいえ
libraries ジョブを実行するクラスターにインストールされるライブラリのリスト。 <文字列, オブジェクト> の配列を指定できます。 はい (mainClassName メソッドを少なくとも 1 つ含む)

Note

既知の問題 - 同時 Databricks Jar アクティビティの実行に同じ対話型クラスターを使用する場合 (クラスターの再起動なし)、Databricks には、最初のアクティビティのパラメーターが、次のアクティビティでも使用されるという既知の問題があります。 そのため、後続のジョブに渡されるパラメーターが正しくありません。 これを回避するには、代わりにジョブ クラスターを使用します。

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

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

{
    "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 のドキュメントを参照してください。

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

この機能の概要とデモンストレーションについては、以下の 11 分間のビデオを視聴してください。