Transformación de datos mediante la ejecución de blocs de notas de Databricks
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde movimientos de datos hasta ciencia de datos, análisis en tiempo real, inteligencia empresarial e informes. ¡Obtenga más información sobre cómo iniciar una nueva evaluación gratuita!
La actividad de cuadernos de Azure Databricks en una canalización ejecuta un cuaderno de Databricks en el área de trabajo de Azure Databricks. Este artículo se basa en el artículo sobre actividades de transformación de datos , que presenta información general de la transformación de datos y las actividades de transformación admitidas. Azure Databricks es una plataforma administrada para ejecutar Apache Spark.
Puede crear un cuaderno de Databricks con una plantilla de ARM mediante JSON o directamente a través de la interfaz de usuario de Azure Data Factory Studio. Para ver un tutorial paso a paso sobre cómo crear una actividad de cuaderno de Databricks mediante la interfaz de usuario, consulte el tutorial Ejecución de un cuaderno de Databricks con la actividad de Notebook de Databricks en Azure Data Factory.
Agregar una actividad de Notebook para Azure Databricks a una canalización con interfaz de usuario
Para usar una actividad de Notebook Azure Databricks en una canalización, complete los pasos siguientes:
Busque Notebook en el panel Actividades de canalización y arrastre una actividad de Notebook al lienzo de la canalización.
Seleccione la nueva actividad de Notebook en el lienzo si aún no está seleccionada.
Seleccione la pestaña de Azure Databricks para seleccionar o crear un nuevo servicio vinculado de Azure Databricks que ejecutará la actividad de Notebook.
Seleccione la pestaña Configuración y especifique la ruta de acceso del cuaderno que se va a ejecutar en Azure Databricks, los parámetros base opcionales que se pasarán al cuaderno y las bibliotecas adicionales que se instalarán en el clúster para ejecutar el trabajo.
Definición de la actividad Notebook de Databricks
Esta es la definición de JSON de ejemplo de una actividad Notebook de 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"
}
]
}
}
}
Propiedades de la actividad Notebook de Databricks
En la siguiente tabla se describen las propiedades JSON que se usan en la definición de JSON:
Propiedad | Descripción | Obligatorio |
---|---|---|
name | Nombre de la actividad en la canalización. | Sí |
description | Texto que describe para qué se usa la actividad. | No |
type | Para la actividad Notebook de Databricks, el tipo de actividad es DatabricksNotebook. | Sí |
linkedServiceName | Nombre del servicio vinculado de Databricks en el que se ejecuta el bloc de notas de Databricks. Para obtener más información sobre este servicio vinculado, vea el artículo Compute linked services (Servicios vinculados de procesos). | Sí |
notebookPath | La ruta de acceso absoluta del cuaderno que se va a ejecutar en el área de trabajo de Databricks. Esta ruta de acceso debe comenzar con una barra diagonal. | Sí |
baseParameters | Una matriz de pares de clave y valor. Se pueden utilizar parámetros base para cada ejecución de actividad. Si el cuaderno toma un parámetro que no se ha especificado, se usará el valor predeterminado del cuaderno. Encuentre más información sobre los parámetros en los cuadernos de Databricks. | No |
libraries | Lista de bibliotecas para instalar en el clúster que ejecutará el trabajo. Puede ser una matriz de <cadena, objeto>. | No |
Bibliotecas compatibles con las actividades de Databricks
En la definición de la actividad de Databricks anterior, se especifican estos tiposd e biblioteca: 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"
}
}
]
}
Para más información, consulte la documentación de Databricks sobre los tipos de bibliotecas.
Pasar parámetros entre cuadernos y canalizaciones
Puede pasar parámetros a cuadernos mediante la propiedad baseParameters que se encuentra en la actividad de Databricks.
En ciertos casos, es posible que necesite devolver algunos valores del cuaderno al servicio, ya que se pueden usar en el flujo de control (esto es, para realizar comprobaciones condicionales) del servicio; también se pueden consumir mediante actividades de bajada (el límite de tamaño es de 2 MB).
En el cuaderno, puede llamar a dbutils.notebook.exit("returnValue") y el valor de "returnValue" correspondiente se devolverá al servicio.
Puede usar la salida del servicio mediante una expresión como
@{activity('databricks notebook activity name').output.runOutput}
.Importante
Si va a pasar un objeto JSON, puede obtener los valores anexando los nombres de propiedad. Ejemplo:
@{activity('databricks notebook activity name').output.runOutput.PropertyName}
Carga de una biblioteca en Databricks
Puede usar la interfaz de usuario del área de trabajo:
Uso de la interfaz de usuario del área de trabajo de Databricks
Para obtener la ruta de acceso de dbfs de la biblioteca que se agregó mediante la interfaz de usuario, puede usar la CLI de Databricks.
Habitualmente, las bibliotecas de Jar se almacenan en dbfs:/FileStore/jars mientras se usa la interfaz de usuario. Puede enumerar todo mediante la CLI: databricks fs ls dbfs:/FileStore/job-jars
O bien, puede usar la CLI de Databricks:
Uso de la CLI de Databricks (pasos de instalación)
Por ejemplo, para copiar un archivo JAR en dbfs:
dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar