Modalità di uscita della lingua R

La firma di uscita UDX è la definizione di una funzione specifica o di un risultato aggregato. Può essere uno scalare (UDF/UDA) o una tabella (UDTF).

La firma di uscita deve essere nota prima dell'invocazione di UDX, il che potrebbe essere diverso da ciò che avviene tipicamente in R. Un caso d'uso tipico di R è la funzione apply che accetta un oggetto data.frame, un margine che specifica l'ordine di applicazione e la funzione da applicare. L'output può essere un vettore, una matrice o un elenco, a seconda dell'output effettivo della funzione fornita dall'utente.
apply(iris, 1, function(x) length(x))
apply(iris[,1:4], 1, function(x) c(length(x),sqrt(as.double(x))))

In R Adapter, la modalità di uscita è controllata dalla variabile d'ambiente OUTPUT_TYPE impostata durante la registrazione.

Per impostare questa variabile, aggiungete le seguenti righe alla riga di comando dello script 'register_ae:
  • Per la modalità sparse, aggiungere:
    --define "r_ae_output_type=SPARSE"
  • Per la modalità tabella, aggiungere:
    --define "r_ae_output_type=TABLE"

Modalità di uscita sparse

In genere, l'output della funzione fornita dall'utente non può essere limitato a una forma predefinita. Nella modalità di output sparse, la R AE restituisce una tabella della definizione TABLE(columnid INT4, valueVARCHAR(16000)), il che significa che ogni colonna di output della R AE viene convertita in una stringa di caratteri. Se si vuole recuperare il valore originale, è necessario eseguire manualmente il cast di ciascun valore nel tipo di dati desiderato. Tuttavia, si dovrebbe evitare questa pratica perché potrebbe causare errori di arrotondamento aggiuntivi e influire sulle prestazioni, soprattutto per i set di dati di grandi dimensioni.

In questa modalità, non c'è differenza tra la restituzione dei dati di uscita con una funzione setOutput generale e le funzioni setOutput<DataType> specifiche, dove <DataType> è un segnaposto per un identificatore di tipo di dati specifico. Tutti i dati in uscita vengono infine memorizzati come stringhe di caratteri.

Modalità di uscita della tabella

La modalità di uscita della tabella alternativa richiede una delle seguenti impostazioni per la firma di uscita fornita durante la fase di registrazione:
  • Impostazione esatta che specifica le colonne con i loro tipi di dati.
  • Impostato su TABLE(ANY) per il quale è necessario definire una funzione di modellazione che specifichi la firma di uscita in fase di esecuzione.

Nella modalità di uscita della tabella, evitare la funzione setOutput. Si utilizzano invece le funzioni specifiche setOutput<DataType>, dove <DataType> è un segnaposto per un identificatore di tipo di dati specifico.