Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met Lakeflow Designer kunt u door de gebruiker gedefinieerde operators maken die rechtstreeks in het canvas naast ingebouwde operators worden weergegeven. Gebruik deze om Lakeflow Designer uit te breiden met uw eigen bedrijfslogica, berekeningen of integraties.
Door de gebruiker gedefinieerde operatoren komen in twee scopes:
- Lokaal: De operator behoort tot één visueel data-voorbereidingsbestand. Beschrijf de transformatie, en Genie Code genereert de operator. Zie Een lokale, door de gebruiker gedefinieerde operator maken met Genie Code.
- Gedeeld: De operator is geregistreerd in de werkruimte, dus jij en andere gebruikers kunnen deze toevoegen aan elk visual data prep-bestand. De logica ervan is een Python-functie of een Unity Catalog-functie, beschreven in YAML. Schrijf het zelf, of vraag Genie Code om het te maken. Bekijk Hoe gebruikersgedefinieerde operatoren werken.
Maak een lokale, door de gebruiker gedefinieerde operator aan met Genie Code
Wanneer Genie Code beschikbaar is in je werkruimte, kun je een lokale, door de gebruiker gedefinieerde operator aanmaken vanaf het Lakeflow Designer-canvas:
Selecteer in het Operatoren-paneel Door gebruiker gedefinieerde operator maken.
Voer een beschrijving in en, optioneel, een naam. Selecteer Voorbeeld genereren.
Tip
Voer bijvoorbeeld de volgende beschrijving in:
Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.Bekijk de gegenereerde configuratie en de Python-functie, selecteer dan Goedkeuren en aanmaken.
Designer slaat de definitie van de lokale operator op in het huidige bestand en voegt deze toe aan het Operators-paneel. Gebruik het actiemenu van de operator om de definitie te bewerken of te verwijderen. Je moet elke instantie van de operator van het canvas verwijderen voordat je de definitie kunt verwijderen.
Kies een type gedeelde operator
Gedeelde, door de gebruiker gedefinieerde operatoren hebben drie typen:
-
python-run-function: een zelfstandig YAML-bestand met inline-Python opgeslagen in de werkruimte. Het meest geschikt voor transformaties op DataFrame-niveau en externe integraties. Machtigingen worden beheerd op het niveau van het werkruimtebestand. -
uc-udf: Omsluit een scalaire functie van Unity Catalog. Het meest geschikt voor transformaties op kolomniveau. Toegang wordt beheerd door unity-catalogusmachtigingen. -
uc-udtf: Omsluit een tabelwaardefunctie van Unity Catalog. Het meest geschikt voor transformaties op tabelniveau, zoals ML-clustering en -aggregatie. Toegang wordt beheerd door unity-catalogusmachtigingen.
| Feature | python-run-function |
uc-udf |
uc-udtf |
|---|---|---|---|
| Voorbeeld van een toepassing | DataFrame-transformaties, API-integraties, e-mailmeldingen | Berekeningen op kolomniveau (BMI, rente) | ML-clustering, aggregatie tussen rijen |
| Invoer | Dataframes | Enkele waarden | Hele tabel, rij per rij |
| Uitvoer | Dataframes | Enkele waarde | Tabel (meerdere rijen) |
| Vereist Unity Catalog-functie | No | Yes | Yes |
| Toegangsbeheer | Machtigingen voor werkruimtebestanden | Machtigingen voor Unity Catalog (EXECUTE, USE SCHEMA) |
Machtigingen voor Unity Catalog (EXECUTE, USE SCHEMA) |
| Ondersteunde talen | Alleen Python | SQL of Python in een SQL-wrapper | SQL of Python in een SQL-wrapper |
Hoe door de gebruiker gedefinieerde operators werken
Een gedeelde, door de gebruiker gedefinieerde operator bestaat uit:
-
Operatorlogica: De code die wordt uitgevoerd wanneer de operator wordt uitgevoerd. Dit is een inline Python-functie
run()voorpython-run-functionoperatoren, of een Unity Catalog-functie vooruc-udfenuc-udtfoperatoren. Zie Logica schrijven voor door gebruikers gedefinieerde operators in Lakeflow Designer. -
YAML-configuratie: Vertelt Lakeflow Designer hoe de operator in de gebruikersinterface kan worden weergegeven, waaronder de naam, beschrijving, invoerparameters, UI-widgets en poorten van de operator. Alle operatortypen maken gebruik van het
user-defined-operator-v0.1.0schema. Voor eenpython-run-functionoperator is de YAML een zelfstandig werkruimtebestand dat ook de inline code bevat. Voor een Unity Catalog-functie is de YAML ingebed in het functielichaam. Zie de door de gebruiker gedefinieerde operator YAML-referentie. -
Registratiebestand: een vermelding in
.user_defined_operators.yamlwaarmee Lakeflow Designer de operator kan vinden. Zie Registreer en zet je operator in bij Lakeflow Designer.
Bouw een gedeelde operator maken
Om een gedeelde, door de gebruiker gedefinieerde operator van begin tot eind te bouwen:
- Kies een operatortype. Zie Een gedeeld operatortype kiezen.
- Schrijf en test de operatorlogica. Zie Logica schrijven voor Lakeflow Designer gebruikersgedefinieerde operators.
- Beschrijf de operator in YAML: naam, configuratie-eigenschappen, UI-widgets en poorten. Zie de door de gebruiker gedefinieerde operator YAML-referentie.
-
Registreer de operator in
.user_defined_operators.yaml. Zie Registreer en zet je operator in bij Lakeflow Designer. - Verleen permissies zodat andere gebruikers de operator kunnen ontdekken en uitvoeren. Zie machtigingen.
- Gebruik de operator. Het verschijnt in het Operator-paneel in Lakeflow Designer, naast de ingebouwde operators.
Elke tutorial loopt deze stappen door voor één volledige operator.
Tip
Om een gedeelde python-run-function operator te maken zonder het zelf te schrijven, beschrijf het aan Genie Code in het zijpaneel. Genie Code vraagt of de operator voor jou of voor de hele werkruimte geregistreerd moet worden, schrijft vervolgens het YAML-bestand en registreert het. Je moet nog steeds rechten geven aan andere gebruikers.
Uw operator registreren en uitrollen in Lakeflow Designer
Registreer je operator in een .user_defined_operators.yaml-bestand zodat deze in Lakeflow Designer wordt weergegeven:
- Werkruimteniveau: Plaats het bestand in de hoofdmap van uw werkruimte om de operator zichtbaar te maken voor alle gebruikers.
-
Gebruikersniveau: Plaats het bestand in de basismap van de gebruiker (
/Workspace/Users/<user-name>/.user_defined_operators.yaml) om operators alleen zichtbaar te maken voor u.
De operators: sectie ondersteunt bestandspaden, functieverwijzingen van Unity Catalog en glob-patronen. U kunt invoertypen combineren:
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
Een operator bijwerken of verwijderen
Wanneer u de code van een operator wijzigt, vernieuwt u de door de gebruiker gedefinieerde operators om de wijziging te laden. Klik op het tabblad Operators van het menu op .
- Als de operator hetzelfde
versionbehoudt, wordt bij het vernieuwen de bijgewerkte code geladen. - Als de operator een nieuwe versie van
versionheeft, vraagt de operator op het canvas u na het vernieuwen om hiernaar te upgraden (of de huidige versie te behouden).
Als u een operator uit Lakeflow Designer wilt verwijderen, verwijdert u de vermelding uit .user_defined_operators.yaml. Voor de uc-udf- en uc-udtf-operators kunt u de onderliggende Unity Catalog-functie ook met DROP FUNCTION laten vallen als u die niet langer nodig hebt.
Permissions
| Toestemming | Purpose |
|---|---|
Leestoegang tot .user_defined_operators.yaml. |
Ontdek de operator. |
Leestoegang tot het YAML-bestand (python-run-function alleen). |
Laad de operatordefinitie. |
| EXECUTE op de Unity Catalog-functie (operatoren gebaseerd op alleen Unity Catalog-functies). | Voer de operator uit. |
| USE SCHEMA op het schema (operatoren gebaseerd op alleen Unity Catalog-functies). | Open het schema waarin de functie is gemaakt. |
| Andere machtigingen | Afhankelijk van uw operator hebben gebruikers mogelijk andere machtigingen nodig. Bijvoorbeeld USE CONNECTION op een Unity Catalog-verbinding voor HTTP-API-aanroepen. |
Troubleshooting
| Issue | Solution |
|---|---|
| De operator wordt niet weergegeven in Lakeflow Designer. | Controleer of deze .user_defined_operators.yaml bestaat en vermeldt uw functie of bestandspad. Voor python-run-function-operators: controleer het bestandspad en of het YAML-bestand toegankelijk is. |
| Schemavalidatie mislukt. | Controleer uw YAML op basis van het officiële schema op https://your-workspace.cloud.databricks.com/static/schemas/user-defined-operator-v0.1.0.json. |
| De machtiging is geweigerd. | Voor operatoren gebaseerd op Unity Catalog-functies, verifieer dat gebruikers USE SCHEMA op de functie en EXECUTE op het schema hebben. Controleer voor python-run-function operators dat gebruikers leestoegang hebben tot het YAML-bestand. |
python-run-function de operator mislukt tijdens runtime. |
Controleer of de run() functiehandtekening overeenkomt def run(config, inputs, spark)met . Controleer of poortnamen in de code overeenkomen met de YAML en of de retourwoordenlijstsleutels overeenkomen met uitvoerpoortwaarden name . |
| UDTF retourneert verkeerde typen. | UDTF-retourtypen moeten expliciet zijn; u kunt niet verwijzen naar invoerkolomtypen. |
Aanvullende bronnen
Bekijk de volgende zelfstudies:
| Example | Typ | Description |
|---|---|---|
| Afzender van Gmail-e-mail | python-run-function |
Stuur DataFrame-gegevens als een CSV-bijlage via Gmail. |
| Rekenmachine voor samengestelde rente | uc-udf |
Bereken toekomstige investeringswaarden met behulp van de formule voor samengestelde rente. |
| K-means-clustering | uc-udtf |
Segmenteer gegevens in clusters met scikit-learn. |
| Slack-bericht verzenden | uc-udf |
Stuur meldingen naar Slack-kanalen via de Slack API. |
| Alle UI-widgets | uc-udf |
Verwijzingsoperator die alle beschikbare UI-widgets weergeeft. |
Om de operatorlogica te schrijven, zie Logica schrijven voor door de gebruiker gedefinieerde operatoren in Lakeflow Designer. Zie de YAML-verwijzing voor door de gebruiker gedefinieerde operatoren voor een volledige verwijzing naar het YAML-schema.