Trasformare i dati eseguendo un notebook di Databricks

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto ciò che riguarda lo spostamento dei dati, l'analisi in tempo reale, l'intelligence aziendale e la creazione di report. Informazioni su come avviare una nuova versione di valutazione gratuitamente!

L'attività notebook di Azure Databricks in una pipeline esegue un notebook di Databricks nell'area di lavoro di Azure Databricks. Questo articolo si basa sull'articolo relativo alle attività di trasformazione dei dati che presenta una panoramica generale della trasformazione dei dati e le attività di trasformazione supportate. Azure Databricks è una piattaforma gestita per l'esecuzione di Apache Spark.

È possibile creare un notebook di Databricks con un modello arm usando JSON oppure direttamente tramite l'interfaccia utente di Azure Data Factory Studio. Per una procedura dettagliata su come creare un'attività notebook di Databricks usando l'interfaccia utente, fare riferimento all'esercitazione Eseguire un notebook di Databricks con l'attività notebook di Databricks in Azure Data Factory.

Aggiungere un'attività notebook per Azure Databricks a una pipeline con l'interfaccia utente

Per usare un'attività notebook per Azure Databricks in una pipeline, completare la procedura seguente:

  1. Cercare Notebook nel riquadro Attività della pipeline e trascinare un'attività Notebook nell'area di disegno della pipeline.

  2. Selezionare la nuova attività Notebook nell'area di disegno se non è già selezionata.

  3. Selezionare la scheda Azure Databricks per selezionare o creare un nuovo servizio collegato di Azure Databricks che eseguirà l'attività Notebook.

    Mostra l'interfaccia utente per un'attività notebook.

  4. Selezionare la scheda Impostazioni e specificare il percorso del notebook da eseguire in Azure Databricks, parametri di base facoltativi da passare al notebook e tutte le librerie aggiuntive da installare nel cluster per eseguire il processo.

    Mostra l'interfaccia utente per la scheda Impostazioni per un'attività Notebook.

Definizione di attività dei notebook di Databricks

Ecco la definizione JSON di esempio di un'attività dei notebook di Databricks:

{
    "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"
                }
            ]
        }
    }
}

Proprietà dell'attività dei notebook di Databricks

La tabella seguente fornisce le descrizioni delle proprietà JSON usate nella definizione JSON:

Proprietà Descrizione Obbligatoria
name Nome dell'attività nella pipeline.
description Testo che descrive l'attività. No
type Per l'attività dei notebook di Databricks il tipo di attività è DatabricksNotebook.
linkedServiceName Nome del servizio collegato Databricks su cui è in esecuzione il notebook di Databricks. Per informazioni su questo servizio collegato, vedere l'articolo Servizi collegati di calcolo.
notebookPath Percorso assoluto del notebook da eseguire nell'area di lavoro di Databricks. Questo percorso deve iniziare con una barra.
baseParameters Matrice di coppie chiave-valore. I parametri base possono essere usati per ogni esecuzione attività. Se il notebook accetta un parametro non specificato, verrà usato il valore predefinito del notebook. Per altre informazioni sui parametri, vedere Notebook di Databricks. No
libraries Un elenco di librerie da installare nel cluster che eseguirà il processo. Può essere una matrice di <stringhe, oggetto>. No

Librerie supportate per le attività di Databricks

Nella definizione di attività databricks precedente specificare questi tipi di libreria: 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"
            }
        }
    ]
}

Per altre informazioni, vedere la documentazione di Databricks per i tipi di libreria.

Passaggio di parametri tra notebook e pipeline

È possibile passare i parametri ai notebook usando la proprietà baseParameters nell'attività databricks.

In alcuni casi, potrebbe essere necessario passare determinati valori dal notebook al servizio, che può essere usato per il flusso di controllo (controlli condizionali) nel servizio o essere utilizzato dalle attività downstream (limite di dimensioni è 2 MB).

  1. Nel notebook è possibile chiamare dbutils.notebook.exit("returnValue") e il corrispondente "returnValue" verrà restituito al servizio.

  2. È possibile utilizzare l'output nel servizio usando l'espressione, @{activity('databricks notebook activity name').output.runOutput}ad esempio .

    Importante

    Se si passa l'oggetto JSON, è possibile recuperare i valori aggiungendo nomi di proprietà. Esempio: @{activity('databricks notebook activity name').output.runOutput.PropertyName}

Come caricare una libreria in Databricks

È possibile usare l'interfaccia utente dell'area di lavoro:

  1. Usare l'interfaccia utente dell'area di lavoro Di Databricks

  2. Per ottenere il percorso dbfs della libreria aggiunta tramite l'interfaccia utente, è possibile usare l'interfaccia della riga di comando di Databricks.

    In genere le librerie Jar sono archiviate in dbfs:/FileStore/jars quando si usa l'interfaccia utente. È possibile elencarle tutte tramite l'interfaccia della riga di comando: databricks fs ls dbfs:/FileStore/job-jars

In alternativa, è possibile usare l'interfaccia della riga di comando di Databricks:

  1. Seguire Copia la libreria usando l'interfaccia della riga di comando di Databricks

  2. Usare l'interfaccia della riga di comando di Databricks (passaggi di installazione)

    Ad esempio, per copiare un file JAR in dbfs: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar