Aufrufen von Funktionen und gespeicherten Prozeduren in Snowpark Python¶
Zur Verarbeitung von Daten in einem DataFrame können Sie systemdefinierte SQL-Funktionen, benutzerdefinierte Funktionen und gespeicherte Prozeduren aufrufen. Unter diesem Thema wird erklärt, wie Sie diese Funktionen in Snowpark aufrufen können.
Zur Verarbeitung von Daten in einem DataFrame können Sie systemdefinierte SQL-Funktionen, benutzerdefinierte Funktionen und gespeicherte Prozeduren aufrufen.
Aufrufen von systemdefinierten Funktionen¶
Wenn Sie systemdefinierte SQL-Funktionen aufrufen müssen, verwenden Sie die entsprechenden Funktionen des Moduls snowflake.snowpark.functions.
Im folgenden Beispiel wird die Funktion upper im Modul functions (das Äquivalent zur systemdefinierten Funktion UPPER) aufgerufen, um die Werte in der Namensspalte der Tabelle sample_product_data mit Großbuchstaben zurückzugeben:
Wenn im Funktionsmodul keine systemdefinierte SQL-Funktion verfügbar ist, können Sie einen der folgenden Ansätze verwenden:
Verwenden Sie die Funktion
call_function, um die systemdefinierte Funktion aufzurufen.Verwenden Sie die Funktion
function, um ein Funktionsobjekt zu erstellen, das Sie zum Aufrufen der systemdefinierten Funktion verwenden können.
call_function und function sind im Modul snowflake.snowpark.functions definiert.
Für call_function übergeben Sie den Namen der systemdefinierten Funktion als erstes Argument. Wenn Sie die Werte von Spalten an die systemdefinierte Funktion übergeben müssen, definieren Sie Spalten-Objekte und übergeben diese als zusätzliche Argumente an die call_function-Funktion.
Im folgenden Beispiel wird die systemdefinierte Funktion RADIANS aufgerufen, die den Wert aus der Spalte col1 übergibt:
Die Funktion call_function gibt einen Column-Wert zurück, den Sie an die DataFrame-Transformationsmethoden (z. B. filter oder select) übergeben können.
Für function übergeben Sie den Namen der systemdefinierten Funktion, und Sie verwenden das zurückgegebene Funktionsobjekt, um die systemdefinierte Funktion aufzurufen. Beispiel:
Benutzerdefinierte Funktionen (UDFs)¶
Zum Aufrufen von UDFs, die Sie mit Namen registriert haben, und von UDFs, die Sie durch Ausführen von CREATE FUNCTION erstellt haben, verwenden Sie die Funktion call_udf im Modul snowflake.snowpark.functions. Übergeben Sie den Namen der UDF als erstes Argument und alle UDF-Parameter als weitere Argumente.
Im folgenden Beispiel wird die UDF-Funktion minus_one aufgerufen, wobei die Werte aus den Spalten col1 und col2 übergeben werden. Im Beispiel wird der Rückgabewert von minus_one an die Methode select des DataFrame übergeben.
Aufrufen benutzerdefinierter Tabellenfunktionen (UDTFs)¶
Zum Aufrufen von UDTFs, die Sie mit Namen registriert haben, und von UDTFs, die Sie durch Ausführen von CREATE FUNCTION erstellt haben, verwenden Sie eine der unten aufgeführten Funktionen. Sowohl UDTFs als auch UDFs geben ein DataFrame-Objekt zurück, das ein im Lazy-Modus ausgewertetes, relationales Dataset repräsentiert.
Beachten Sie, dass Sie damit auch andere Tabellenfunktionen aufrufen können, einschließlich systemdefinierte Tabellenfunktionen.
Weitere Informationen zur Registrierung einer UDTF finden Sie unter Registrieren einer UDTF.
Um die UDTF aufzurufen, ohne eine seitliche Verknüpfung (Lateral Join) anzugeben, rufen Sie die Funktion
table_functionder Klassesnowflake.snowpark.Sessionauf.Die Funktionsreferenz und Beispiele finden Sie unter Session.table_function.
Im folgenden Codebeispiel wird
table_functionverwendet, um die Funktiongenerator_udtfaufzurufen, die mit der Funktionudtfregistriert ist.Für das Aufrufen einer UDTF, in der Ihr Aufruf eine seitliche Verknüpfung angibt, verwenden Sie die Funktion
join_table_functionder Klassesnowflake.snowpark.DataFrame.Bei der seitlichen Verknüpfung einer UDTF können Sie die Klauseln PARTITION BY und ORDER BY angeben.
Die Funktionsreferenz und Beispiele finden Sie unter DataFrame.join_table_function.
Im folgenden Codebeispiel wird eine seitliche Verknüpfung unter Angabe der Parameter
partition_byundorder_byausgeführt. In diesem Codebeispiel wird zunächst die Funktionsnowflake.snowpark.functions.table_functionaufgerufen, um ein Funktionsobjekt zu erstellen, das die systemdefinierte FunktionSPLIT_TO_TABLErepräsentiert. Dieses Funktionsobjekt wird dann vonjoin_table_functionaufgerufen.Die Funktionsreferenz zu
snowflake.snowpark.functions.table_functionfinden Sie unter table_function. Die Funktionsreferenz zuSPLIT_TO_TABLEfinden Sie unter SPLIT_TO_TABLE.
Aufrufen von gespeicherten Prozeduren¶
Um eine gespeicherte Prozedur aufzurufen, verwenden Sie die Call-Methode der Session-Klasse.