Condividi tramite


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, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

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 o direttamente tramite l'interfaccia utente di Azure Data Factory Studio. Per una procedura dettagliata su come creare un'attività del 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, seguire questa procedura:

  1. Cercare Notebook nel riquadro Attività 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, i parametri di base facoltativi da passare al notebook e le eventuali 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 Richiesto
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 dell'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, consultare la documentazione di Databricks sui tipi di libreria.

Passaggio di parametri tra notebook e pipeline

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

In alcuni casi, potrebbe essere necessario trasferire alcuni valori dal notebook al servizio, che possono essere utilizzati per il flusso di controllo (controlli condizionali) nel servizio o essere utilizzati da attività a valle (il limite di dimensione è di 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 tramite espressioni come @{activity('databricks notebook activity name').output.runOutput}.

    Importante

    Se si passa un 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 aggiunto 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 Copiare la libreria usando l'interfaccia della riga di comando di Databricks

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

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