Transformera data genom att köra en Jar-aktivitet i Azure Databricks

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Azure Databricks Jar-aktiviteten i en pipeline kör en Spark Jar i ditt Azure Databricks-kluster. Den här artikeln bygger på artikeln om datatransformeringsaktiviteter , som visar en allmän översikt över datatransformering och de omvandlingsaktiviteter som stöds. Azure Databricks är en hanterad plattform för att köra Apache Spark.

Om du vill se en introduktion och demonstration av den här funktionen rekommenderar vi följande videoklipp (11 minuter):

Lägga till en Jar-aktivitet för Azure Databricks i en pipeline med användargränssnittet

Utför följande steg för att använda en Jar-aktivitet för Azure Databricks i en pipeline:

  1. Sök efter Jar i fönstret PipelineAktiviteter och dra en Jar-aktivitet till pipelinearbetsytan.

  2. Välj den nya Jar-aktiviteten på arbetsytan om den inte redan är markerad.

  3. Välj fliken Azure Databricks för att välja eller skapa en ny länkad Azure Databricks-tjänst som ska köra Jar-aktiviteten.

    Shows the UI for a Jar activity.

  4. Välj fliken Inställningar och ange ett klassnamn som ska köras på Azure Databricks, valfria parametrar som ska skickas till jar-filen och bibliotek som ska installeras i klustret för att köra jobbet.

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

Databricks Jar-aktivitetsdefinition

Här är JSON-exempeldefinitionen för en Databricks Jar-aktivitet:

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

Egenskaper för Databricks Jar-aktivitet

I följande tabell beskrivs de JSON-egenskaper som används i JSON-definitionen:

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten i pipelinen. Ja
description Text som beskriver vad aktiviteten gör. Nej
type För Databricks Jar-aktivitet är aktivitetstypen DatabricksSparkJar. Ja
linkedServiceName Namnet på den länkade Databricks-tjänst som Jar-aktiviteten körs på. Mer information om den här länkade tjänsten finns i artikeln Compute linked services (Beräkningslänkade tjänster ). Ja
mainClassName Det fullständiga namnet på klassen som innehåller huvudmetoden som ska köras. Den här klassen måste finnas i en JAR som tillhandahålls som ett bibliotek. En JAR-fil kan innehålla flera klasser. Var och en av klasserna kan innehålla en huvudmetod. Ja
parametrar Parametrar som skickas till huvudmetoden. Den här egenskapen är en matris med strängar. Nej
bibliotek En lista över bibliotek som ska installeras i klustret som ska köra jobbet. Det kan vara en matris med <sträng, objekt> Ja (minst en som innehåller metoden mainClassName)

Kommentar

Känt problem – När du använder samma interaktiva kluster för att köra samtidiga Databricks Jar-aktiviteter (utan omstart av klustret) finns det ett känt problem i Databricks där parametrarna för den första aktiviteten även används av följande aktiviteter. Det leder därför till att felaktiga parametrar skickas till efterföljande jobb. För att minimera detta använder du ett jobbkluster i stället.

Bibliotek som stöds för databricks-aktiviteter

I den tidigare Databricks-aktivitetsdefinitionen angav du följande bibliotekstyper: 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"
            }
        }
    ]
}

Mer information finns i Databricks-dokumentationen för bibliotekstyper.

Ladda upp ett bibliotek i Databricks

Du kan använda arbetsytans användargränssnitt:

  1. Använda användargränssnittet för Databricks-arbetsytan

  2. Om du vill hämta dbfs-sökvägen för biblioteket som lagts till med hjälp av användargränssnittet kan du använda Databricks CLI.

    Vanligtvis lagras Jar-biblioteken under dbfs:/FileStore/jars när användargränssnittet används. Du kan visa en lista över hela CLI: databricks fs ls dbfs:/FileStore/job-jars

Eller så kan du använda Databricks CLI:

  1. Följ Kopiera biblioteket med Databricks CLI

  2. Använda Databricks CLI (installationssteg)

    Om du till exempel vill kopiera en JAR-fil till dbfs: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar

För en elva minuter lång introduktion och demonstration av den här funktionen kan du titta på videon.