Jaa


NotebookUtils User Data Function (UDF) utilities for Fabric

Moduuli notebookutils.udf tarjoaa työkaluja muistikirjan koodin integroimiseksi User Data Function (UDF) -kohteisiin. Voit käyttää funktioita UDF-kohteesta samassa työtilassa tai eri työtiloissa ja kutsua ne tarvittaessa. UDF-vaatimukset edistävät koodin uudelleenkäytettävyyttä, keskitettyä ylläpitoa ja tiimiyhteistyötä.

Käytä UDF-apuohjelmia seuraaviin tarkoituksiin:

  • Funktioiden haku – Käytetään UDF-kohteiden funktioita nimellä.
  • Työtilan välinen pääsy – Käytä funktioita UDF-kohteista muissa työtiloissa.
  • Funktioiden löytäminen – Tarkastaa käytettävissä olevat funktiot ja niiden allekirjoitukset.
  • Joustava kutsu – Kutsu funktioita kieleen sopivilla parametreilla.

Muistio

Tarvitset lukuoikeuden kohdetyötilassa olevaan UDF-alkioon, jotta voit hakea sen toiminnot. Poikkeukset UDF-funktioista etenevät kutsuvalle muistikirjalle.

Seuraava taulukko listaa saatavilla olevat UDF-menetelmät:

Menetelmä Allekirjoitus Description
getFunctions getFunctions(udf: String, workspaceId: String = ""): UDF Hae kaikki funktiot UDF-alkiosta artefakti-ID:n tai nimen perusteella. Palauttaa objektin, jolla on kutsuttavia funktiotattribuutteja.

Palautettu objekti paljastaa seuraavat ominaisuudet:

Ominaisuus Tyyppi Description
functionDetails Lista Luettelo funktiometatietosanakirjoista. Jokainen sanakirja sisältää: Name (funktion nimi), Description (funktion kuvaus), Parameters (parametrimääritelmien lista), FunctionReturnType (palautustyyppi) ja DataSourceConnections (käytettyjä tietolähdeyhteyksiä).
itemDetails Sanakirja UDF-kohdemetatietojen sanakirja, jossa on avaimet: Id (artefakti-ID), Name (kohteen nimi), WorkspaceId (työtilan tunnus) ja CapacityId (kapasiteettitunniste).
<functionName> Kutsuttava Jokainen funktio UDF-alkiossa muuttuu kutsuttavaksi metodiksi palautetulle objektille. Käytetään myFunctions.functionName(...) kutsumiseen.

Vinkki

Hae UDF-funktiot kerran ja välimuisti kääreobjekti. Vältä toistuvia kutsuja getFunctions() silmukassa—välimuistita tulos sen sijaan minimoidaksesi ylikuormituksen.

Funktioiden noutaminen UDF:stä

Käytetään notebookutils.udf.getFunctions() kaikkien toimintojen hakemiseen UDF-esineestä. Voit halutessasi määrittää työtilan ID:n monikäyttöistä varten.

# Get functions from a UDF item in the current workspace
myFunctions = notebookutils.udf.getFunctions('UDFItemName')

# Get functions from a UDF item in another workspace
myFunctions = notebookutils.udf.getFunctions('UDFItemName', 'workspaceId')

Funktion kutsuminen

Kun funktiot on haettu UDF-kohteesta, kutsu niitä nimeltä. Python tukee paikka- ja nimettyjä parametreja. Scala- ja R-esimerkit käyttävät paikkaparametreja.

# Positional parameters
myFunctions.functionName('value1', 'value2')

# Named parameters (recommended for clarity)
myFunctions.functionName(parameter1='value1', parameter2='value2')

Näyttötiedot

Voit tarkastella UDF-kohteiden metatietoja ja funktioiden allekirjoituksia ohjelmallisesti.

Näytä UDF-tuotetiedot

display(myFunctions.itemDetails)

Näyttötoimintojen yksityiskohdat

display(myFunctions.functionDetails)

Vinkki

Tarkista functionDetails aina, kun työskentelet uuden UDF-tuotteen kanssa. Tämä auttaa varmistamaan käytettävissä olevat funktiot ja niiden odotetut parametrityypit ennen kutsua.

Virheenkäsittely

Kääri UDF-kutsut kielen mukaiseen virheenkäsittelyyn hallitseaksesi puuttuvia funktioita tai odottamattomia parametrityyppejä sujuvasti. Varmista aina, että funktio on olemassa UDF-alkiossa ennen kuin kutsut sen.

import json

try:
    validators = notebookutils.udf.getFunctions('DataValidators')

    # Check if function exists before calling
    functions_info = json.loads(validators.functionDetails)
    function_names = [f['Name'] for f in functions_info]

    if 'validateSchema' in function_names:
        is_valid = validators.validateSchema(
            schema='sales_schema',
            data_path='Files/data/sales.csv'
        )
        print(f"Schema validation: {'passed' if is_valid else 'failed'}")
    else:
        print("validateSchema function not available in this UDF item")
        print(f"Available functions: {', '.join(function_names)}")

except AttributeError as e:
    print(f"Function not found: {e}")
except TypeError as e:
    print(f"Parameter type mismatch: {e}")
except Exception as e:
    print(f"Error invoking UDF: {e}")

Käytä UDF-funktioita dataputkessa

Voit koostaa UDF-funktioita uudelleenkäytettävien ETL-vaiheiden rakentamiseen:

etl_functions = notebookutils.udf.getFunctions('ETLUtilities')

df = spark.read.csv('Files/raw/sales.csv', header=True)
cleaned_df = etl_functions.removeOutliers(df, columns=['amount'])
enriched_df = etl_functions.addCalculatedColumns(cleaned_df)
validated_df = etl_functions.validateAndFilter(enriched_df)

validated_df.write.mode('overwrite').parquet('Files/processed/sales.parquet')
print("ETL pipeline completed using UDF functions")

Tärkeää

UDF-kutsut aiheuttavat ylimääräisen kulun. Jos kutsut samaa funktiota samoilla parametreilla toistuvasti, harkitse tuloksen välimuistittamista. Vältä UDF-funktioiden kutsumista tiukoissa silmukoissa aina kun mahdollista.