Questa pagina spiega come convertire i campi in decimali ed eseguire su di essi trasformazioni quando prepari i dati nello spazio di lavoro Wrangler di Studio di Cloud Data Fusion.
Lettura di dati decimali
- Vai allo spazio di lavoro Wrangler in Cloud Data Fusion.
Apri un oggetto, ad esempio una tabella, da un database o da un file Cloud Storage.
- Per un database o una connessione BigQuery, se la tabella contiene una colonna decimale, Wrangler la converte in un tipo
BigDecimal
. Quando crei la pipeline da Wrangler, la colonna viene quindi convertita il tipo di datidecimal
. Se il set di dati contiene dati non decimali in cui vuoi eseguire la conversione decimali, usa l'istruzione
set-column
:set-column : DECIMAL_COLUMN exp:{new("java.math.BigDecimal", INPUT_COLUMN)}
Sostituisci quanto segue:
DECIMAL_COLUMN
: la colonna decimale da trasformare. Dopo l'esecuzione della direttiva, il tipo di dati della colonna diventaBigDecimal
e lo schema contiene anche il tipo di dati appropriato.INPUT_COLUMN
: la colonna che viene convertita, che può essere uno dei seguenti tipi:STRING
,INTEGER
,LONG
,FLOAT
oDOUBLE
.
Se il set di dati include valori con scala diversa, ad esempio 1,05, 2,698, 5.8745512, impostare la bilancia con una direttiva Wrangler e modificare schema nella pipeline per impostare la scala per la colonna decimale.
Per impostare la fare lo scale in Wrangler, utilizza una direttiva simile alla seguenti:
set-column : OUTPUT_COLUMN exp:{new("java.math.BigDecimal", DECIMAL_COLUMN).setScale()}
Il seguente esempio converte una colonna denominata
cost
da una stringa a un valore decimale, imposta una scala di 9 e restituisce i risultati in una nuova colonna denominataoutput-column
:set-column : output-column exp:{new("java.math.BigDecimal", "cost").setScale(9)}
- Per un database o una connessione BigQuery, se la tabella contiene una colonna decimale, Wrangler la converte in un tipo
Trasformare i dati decimali
Le colonne decimali in Wrangler utilizzano la classe BigDecimal di Java.
Dopo che le colonne sono state convertite nel tipo di dati BigDecimal, trasforma
colonne con metodi da Class BigDecimal
.
Trasformazione | Direttiva |
---|---|
Ottenere il valore assoluto | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.abs() |
Ottenere la precisione di un valore decimale | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.precision() |
Ottenere la scala di un valore decimale | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.scale() |
Ottenere il valore non scalato di un valore decimale | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.unscaledValue() |
Aggiungere due colonne decimali | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.add(DECIMAL_COLUMN_2) |
Sottrarre un numero decimale da un altro | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.subtract(DECIMAL_COLUMN_2) |
Moltiplicare un decimale con un altro | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.multiply(DECIMAL_COLUMN_2) |
Dividere una colonna decimale per un'altra e restituire il quoziente | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.divide(DECIMAL_COLUMN_2) |
Dividere una colonna decimale per un'altra e restituire il resto | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.remainder(DECIMAL_COLUMN_2) |
Converti il decimale in un numero intero | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue() |
Convertire un numero decimale in un numero lungo | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.longValue() |
Converti decimale in numero in virgola mobile | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.floatValue() |
Converti decimale in doppio | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.doubleValue() |
Verificare se un valore decimale è uguale a un altro | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.equals(DECIMAL_COLUMN_2) |
Trovare il massimo di due colonne decimali | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2) |
Trovare il minimo di due colonne decimali | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2) |
Sposta la virgola decimale di n posizioni a sinistra | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n) |
Sposta la virgola decimale n posizioni a destra | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n) |
Ottenere la potenza n-esima di un decimale | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.pow(n) |
Negare un decimale | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate() |
Rimuovere gli zeri finali in un numero decimale | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros() |
Sostituisci quanto segue:
OUTPUT_COLUMN
: la colonna contenente l'output dell'operazione.DECIMAL_COLUMN
: la colonna decimale che viene trasformata.DECIMAL_COLUMN_2
: la seconda colonna decimale inclusa nell'operazione, ad esempio quando aggiungi i valori di due colonne decimali.
Passaggi successivi
- Scopri di più sulle istruzioni di Wrangler.