Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
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
Näyttötoimintojen yksityiskohdat
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.