Sprachausgabe-Modus R
Die UDX-Ausgangssignatur ist die Definition einer bestimmten Funktion oder eines Aggregatergebnisses. Es kann ein Skalar (UDF/UDA) oder eine Tabelle (UDTF) sein.
apply(iris, 1, function(x) length(x))
apply(iris[,1:4], 1, function(x) c(length(x),sqrt(as.double(x))))
Im R Adapter wird der Ausgabemodus durch die OUTPUT_TYPE Umgebungsvariable gesteuert, die Sie bei der Registrierung setzen.
- Für den Sparrow-Modus, hinzufügen:
--define "r_ae_output_type=SPARSE" - Für den Tabellenmodus, hinzufügen:
--define "r_ae_output_type=TABLE"
Sparse Output Modus
Im Allgemeinen kann die Ausgabe der vom Benutzer bereitgestellten Funktion nicht auf eine vordefinierte Form beschränkt werden. Im Sparse-Ausgabemodus gibt die R AE eine Tabelle der Definition TABLE(columnid INT4, valueVARCHAR(16000)) zurück, was bedeutet, dass jede R AE-Ausgabespalte in eine Zeichenkette umgewandelt wird. Wenn der Originalwert abgerufen werden soll, müssen Sie jeden Wert manuell in den gewünschten Datentyp umwandeln. Sie sollten diese Praxis jedoch vermeiden, da sie zusätzliche Rundungsfehler verursachen und die Leistung beeinträchtigen kann, insbesondere bei großen Datensätzen.
In diesem Modus gibt es keinen Unterschied zwischen der Rückgabe von Ausgabedaten mit einer allgemeinen setOutput und spezifischen setOutput<DataType>-Funktionen, wobei <DataType> ein Platzhalter für eine spezifische Datentypkennung ist. Alle Ausgabedaten werden schließlich als Zeichenkette gespeichert.
Tabelle Ausgabemodus
- Genaue Einstellung, die Spalten mit ihren Datentypen angibt.
Auf TABLE(ANY) gesetzt, für die Sie eine Shaper-Funktion definieren müssen, die die Ausgabesignatur zur Laufzeit festlegt.
Im Modus Tabellenausgabe sollten Sie die Funktion setOutput vermeiden. Stattdessen verwenden Sie spezielle setOutput<DataType>-Funktionen, wobei <DataType> ein Platzhalter für einen bestimmten Datentypbezeichner ist.