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.

Die Ausgabesignatur muss vor einem UDX-Aufruf bekannt sein, was sich von dem unterscheiden kann, was normalerweise in R geschieht. Ein typischer Anwendungsfall in R ist die apply-Funktion, die ein data.frame, einen Rand, der die Reihenfolge der Anwendung angibt, und die anzuwendende Funktion akzeptiert. Die Ausgabe kann ein Vektor, eine Matrix oder eine Liste sein, je nach der tatsächlichen Ausgabe der vom Benutzer bereitgestellten Funktion.
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.

Um diese Variable zu setzen, fügen Sie die folgenden Zeilen in die Befehlszeile des Skripts " register_ae ein:
  • 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

Der alternative Tabellenausgabemodus erfordert eine der folgenden Einstellungen für die Ausgabesignatur, die während des Registrierungsschritts angegeben wird:
  • 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.