Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das notebookutils.udf Modul bietet Hilfsprogramme zum Integrieren von Notizbuchcode in UDF-Elemente (User Data Function). Sie können auf Funktionen aus einem UDF-Element innerhalb desselben Arbeitsbereichs oder in verschiedenen Arbeitsbereichen zugreifen und diese Funktionen dann nach Bedarf aufrufen. UDF-Elemente fördern die Wiederverwendbarkeit von Code, die zentrale Wartung und die Teamzusammenarbeit.
Verwenden Sie UDF-Hilfsprogramme, um:
- Funktionsabruf – Zugriff auf Funktionen aus UDF-Elementen anhand des Namens.
- Arbeitsbereichübergreifender Zugriff – Verwenden von Funktionen aus UDF-Elementen in anderen Arbeitsbereichen.
- Funktionsermittlung – Überprüfen der verfügbaren Funktionen und deren Signaturen.
- Flexibles Aufrufen – Aufrufen von Funktionen mit sprachgerechten Parametern.
Hinweis
Sie benötigen Lesezugriff auf ein UDF-Element im Zielarbeitsbereich, um seine Funktionen abzurufen. Ausnahmen von UDF-Funktionen werden an das aufrufende Notizbuch weitergegeben.
In der folgenden Tabelle sind die verfügbaren UDF-Methoden aufgeführt:
| Methode | Signature | Beschreibung |
|---|---|---|
getFunctions |
getFunctions(udf: String, workspaceId: String = ""): UDF |
Ruft alle Funktionen aus einem UDF-Element anhand der Artefakt-ID oder des Namens ab. Gibt ein Objekt mit aufrufbaren Funktionsattributen zurück. |
Das zurückgegebene Objekt macht die folgenden Eigenschaften verfügbar:
| Eigentum | Typ | Beschreibung |
|---|---|---|
functionDetails |
List | Eine Liste der Funktionsmetadatenverzeichnisse. Jedes Wörterbuch enthält: Name (Funktionsname), Description (Funktionsbeschreibung), Parameters (Liste der Parameterdefinitionen), FunctionReturnType (Rückgabetyp) und DataSourceConnections (verwendete Datenquellenverbindungen). |
itemDetails |
Wörterbuch | Ein Wörterbuch mit UDF-Elementmetadaten mit Schlüsseln: Id (Artefakt-ID), Name (Elementname), WorkspaceId (Arbeitsbereichs-ID) und CapacityId (Kapazitäts-ID). |
<functionName> |
Aufrufbar | Jede Funktion im UDF-Element wird zu einer aufrufbaren Methode für das zurückgegebene Objekt. Verwenden Sie myFunctions.functionName(...), um es aufzurufen. |
Tipp
Rufen Sie UDF-Funktionen einmal ab und zwischenspeichern Sie das Wrapperobjekt. Vermeiden Sie wiederholtes Aufrufen getFunctions() in einer Schleife – speichern Sie das Ergebnis stattdessen zwischen, um den Aufwand zu minimieren.
Abrufen von Funktionen aus einer benutzerdefinierten Funktion (UDF)
Verwenden Sie notebookutils.udf.getFunctions(), um alle Funktionen von einem UDF-Element abzurufen. Optional können Sie eine Arbeitsbereichs-ID für den arbeitsbereichübergreifenden Zugriff angeben.
# 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')
Eine Funktion aufrufen
Rufen Sie nach dem Abrufen von Funktionen aus einem UDF-Element diese mit ihrem Namen auf. Python unterstützt Positions- und benannte Parameter. Skala- und R-Beispiele verwenden Positionsparameter.
# Positional parameters
myFunctions.functionName('value1', 'value2')
# Named parameters (recommended for clarity)
myFunctions.functionName(parameter1='value1', parameter2='value2')
Details anzeigen
Sie können UDF-Elementmetadaten und Funktionssignaturen programmgesteuert prüfen.
Anzeigen von UDF-Element-Details
Anzeigen von Funktionsdetails
Tipp
Überprüfen Sie immer functionDetails, wenn Sie mit einem neuen UDF-Element arbeiten. Auf diese Weise können Sie verfügbare Funktionen und deren erwartete Parametertypen vor dem Aufruf überprüfen.
Fehlerbehandlung
Umschließen Sie UDF-Aufrufe in der sprachgerechten Fehlerbehandlung, um fehlende Funktionen oder unerwartete Parametertypen ordnungsgemäß zu verwalten. Stellen Sie immer sicher, dass eine Funktion im UDF-Element vorhanden ist, bevor Sie sie aufrufen.
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}")
Verwenden von UDF-Funktionen in einer Datenpipeline
Sie können UDF-Funktionen erstellen, um wiederverwendbare ETL-Schritte zu erstellen:
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")
Von Bedeutung
UDF-Aufrufe haben Mehraufwand. Wenn Sie dieselbe Funktion mit denselben Parametern wiederholt aufrufen, sollten Sie das Ergebnis zwischenspeichern. Vermeiden Sie nach Möglichkeit das Aufrufen von UDF-Funktionen in engen Schleifen.