Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Lakeflow Designer permite crear operadores definidos por el usuario que aparecen directamente en el lienzo junto con operadores integrados. Úselos para ampliar Lakeflow Designer con su propia lógica de negocios, cálculos o integraciones.
Los operadores definidos por el usuario existen en dos alcances:
- Local: El operador pertenece a un archivo de preparación de datos visuales. Describe la transformación y Genie Code genera el operador. Véase Crear un operador definido localmente por el usuario con Código Genie.
- Compartido: El operador está registrado en el espacio de trabajo, así que tú y otros usuarios podéis añadirlo a cualquier archivo de preparación de datos visuales. Su lógica es una función Python o una función de Unity Catalog, descrita en YAML. Escríbelo tú mismo, o pide a Genie Code que lo cree. Consulta cómo funcionan los operadores definidos por el usuario.
Crea un operador definido localmente por el usuario con Genie Code
Cuando Genie Code esté disponible en tu espacio de trabajo, puedes crear un operador definido localmente por el usuario a partir del lienzo de Lakeflow Designer:
En el panel Operadores, selecciona Crear operador definido por el usuario.
Introduce una descripción y, opcionalmente, un nombre. Selecciona Generar vista previa.
Tip
Por ejemplo, introduce la siguiente descripción:
Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.Revisa la configuración generada y la función de Python, luego selecciona Aprobar y crear.
El diseñador almacena la definición del operador local en el archivo actual y la añade al panel Operadores. Utiliza el menú de acciones del operador para editar o eliminar la definición. Debes eliminar todas las instancias del operador del lienzo antes de poder eliminar su definición.
Elige un tipo de operador compartido
Los operadores compartidos definidos por el usuario tienen tres tipos:
-
python-run-function: un archivo YAML independiente con código Python integrado almacenado en el área de trabajo. Mejor para las transformaciones de nivel de DataFrame y las integraciones externas. Los permisos se administran en el nivel de archivo del área de trabajo. -
uc-udf: encapsula una función escalar de Unity Catalog. Ideal para transformaciones a nivel de columna. El acceso se rige por los permisos del catálogo de Unity. -
uc-udtf: encapsula una función con valores de tabla de Unity Catalog. Lo mejor para las transformaciones de nivel de tabla, como la agrupación en clústeres de ML y la agregación. El acceso se rige por los permisos del catálogo de Unity.
| Feature | python-run-function |
uc-udf |
uc-udtf |
|---|---|---|---|
| Ejemplo de caso de uso | Transformaciones de DataFrame, integraciones de API, notificaciones por correo electrónico | Cálculos de nivel de columna (IMC, tasas de interés) | Agrupación por clústeres de aprendizaje automático, agregación a través de las filas |
| Entrada | Marcos de datos | Valores únicos | Tabla completa, fila por fila |
| Output | Marcos de datos | Valor único | Tabla (varias filas) |
| Requiere la función catálogo de Unity | No | Sí | Sí |
| Gobernanza del acceso | Permisos de archivo del área de trabajo | Permisos de Unity Catalog (EXECUTE, USE SCHEMA) |
Permisos de Unity Catalog (EXECUTE, USE SCHEMA) |
| Idiomas compatibles | Únicamente Python | SQL o Python en un contenedor de SQL | SQL o Python en un contenedor de SQL |
Funcionamiento de los operadores definidos por el usuario
Un operador compartido definido por el usuario consiste en:
-
Lógica del operador: código que se ejecuta cuando se ejecuta el operador. Esta es una función Python
run()en línea para los operadorespython-run-function, o una función de Unity Catalog para los operadoresuc-udfyuc-udtf. Consulta Escribir lógica para operadores definidos por el usuario de Lakeflow Designer. -
Configuración de YAML: indica al Diseñador de Lakeflow cómo presentar el operador en la interfaz de usuario, incluido el nombre del operador, la descripción, los parámetros de entrada, los widgets de interfaz de usuario y los puertos. Todos los tipos de operador usan el
user-defined-operator-v0.1.0esquema. Para unpython-run-functionoperador, el YAML es un archivo de espacio de trabajo independiente que también contiene el código en línea. Para una función de Unity Catalog, el YAML está incrustado en el cuerpo de la función. Consulta la referencia YAML de operador definido por el usuario. -
Archivo de registro: una entrada en
.user_defined_operators.yamlque permite que Lakeflow Designer detecte el operador. Consulta Registra e implementa tu operador en Lakeflow Designer.
Crear un operador común
Para construir un operador compartido definido por el usuario de principio a fin:
- Elige un tipo de operador. Ver Elegir un tipo de operador compartido.
- Escribe y prueba la lógica del operador. Consulta Escribir lógica para operadores definidos por el usuario de Lakeflow Designer.
- Describe el operador en YAML: su nombre, propiedades de configuración, widgets de la interfaz y puertos. Consulta la referencia YAML de operador definido por el usuario.
-
Registre al operador en
.user_defined_operators.yaml. Consulta Registrar e implementar tu operador en Lakeflow Designer. - Conceder permisos para que otros usuarios puedan descubrir y ejecutar el operador. Consulte Permisos.
- Usa el operador. Aparece en el panel de Operadores en Lakeflow Designer, junto con los operadores integrados.
Cada tutorial recorre estos pasos de principio a fin para un operador.
Tip
Para crear un operador compartido python-run-function sin escribirlo tú mismo, descríbelo a Genie Code en el panel lateral. Genie Code pregunta si debe registrar el operador para ti o para todo el espacio de trabajo, luego escribe el archivo YAML y lo registra. Aún necesitas conceder permisos a otros usuarios.
Registro e implementación del operador en Lakeflow Designer
Para que el operador aparezca en Lakeflow Designer, regístrelo en un .user_defined_operators.yaml archivo:
- Nivel de área de trabajo: Coloque el archivo en la raíz del área de trabajo para que el operador sea visible para todos los usuarios.
-
Nivel de usuario: Coloque el archivo en la carpeta principal del usuario (
/Workspace/Users/<user-name>/.user_defined_operators.yaml) para que los operadores sean visibles solo para usted.
La operators: sección admite rutas de acceso de archivo, referencias a funciones de Catálogo de Unity y patrones globales. Puede mezclar tipos de entrada:
operators:
# File path (python-run-function operators)
- /Workspace/Users/me/udos/my_operator.yaml
# Glob pattern (registers all matching files)
- /Workspace/Users/me/udos/transforms/*.yaml
# UC function reference (uc-udf and uc-udtf operators)
- catalog: my_catalog
schema: my_schema
functionName: my_function
Actualizar o quitar un operador
Al cambiar el código de un operador, actualice los operadores definidos por el usuario para cargar el cambio. En la pestaña Operadores del menú, haga clic en
- Si el operador mantiene el mismo
version, al actualizar se carga el código actualizado. - Si el operador tiene un nuevo
version, el operador en el lienzo te pedirá que lo actualices (o que mantengas la versión actual) después de actualizar la página.
Para quitar un operador de Lakeflow Designer, elimine su entrada de .user_defined_operators.yaml. Para los operadores uc-udf y uc-udtf, también puedes eliminar la función subyacente de Unity Catalog con DROP FUNCTION si ya no la necesitas.
Permissions
| Permiso | propósito |
|---|---|
Acceso de lectura a .user_defined_operators.yaml. |
Detectar el operador. |
Acceso de lectura al archivo YAML (python-run-function solo). |
Cargue la definición del operador. |
| EXECUTE en la función Unity Catalog (operadores basados solo en funciones Unity Catalog). | Ejecutar el operador. |
| USE SCHEMA sobre el esquema (operadores basados solo en funciones del Catálogo de Unity). | Acceda al esquema donde se crea la función. |
| Otros permisos | Según el operador, los usuarios pueden requerir otros permisos. Por ejemplo, USE CONNECTION en una conexión de Unity Catalog para llamadas a la API HTTP. |
Troubleshooting
| Issue | Solución |
|---|---|
| El operador no aparece en el Diseñador de Lakeflow. | Compruebe que .user_defined_operators.yaml existe e incluye su función o la ruta de acceso del archivo. Para los operadores python-run-function, verifique la ruta del archivo y que el archivo YAML sea accesible. |
| Se produce un error en la validación del esquema. | Compruebe el CÓDIGO YAML con el esquema oficial en https://your-workspace.cloud.databricks.com/static/schemas/user-defined-operator-v0.1.0.json. |
| permiso denegado. | Para operadores basados en funciones del Catálogo de Unity, verifica que los usuarios tengan EXECUTE sobre la función y USE SCHEMA sobre el esquema. Para los operadores python-run-function, compruebe que los usuarios tienen acceso de lectura al archivo YAML. |
python-run-function el operador produce un error en tiempo de ejecución. |
Compruebe que la firma de la run() función coincide con def run(config, inputs, spark). Compruebe que los nombres de puerto del código coincidan con YAML y que las claves de diccionario de retorno coincidan con los valores del puerto name de salida. |
| UDTF devuelve tipos incorrectos. | Los tipos de retorno de las UDTF deben ser explícitos; no se puede hacer referencia a los tipos de las columnas de entrada. |
Recursos adicionales
Explore los siguientes tutoriales:
| Example | Tipo | Description |
|---|---|---|
| Remitente de correo electrónico de Gmail | python-run-function |
Envía datos de DataFrame como archivo adjunto CSV en un correo a través de Gmail. |
| Calculadora de interés compuesto | uc-udf |
Calcule los valores de inversión futuros mediante la fórmula de interés compuesto. |
| Agrupación en clústeres K-Means | uc-udtf |
Segmente los datos en clústeres mediante scikit-learn. |
| Enviar mensaje de Slack | uc-udf |
Envía notificaciones a los canales de Slack a través de la API de Slack. |
| Todos los widgets de interfaz de usuario | uc-udf |
Operador de referencia que muestra todos los widgets de interfaz de usuario disponibles. |
Para escribir la lógica de operadores, véase Escribir lógica para operadores definidos por el usuario de Lakeflow Designer. Para obtener una referencia completa al esquema YAML, consulte Referencia de YAML del operador definido por el usuario.