Lavorare con i dati decimali

Questa pagina spiega come convertire i campi in decimali ed eseguire di base quando prepari i dati nell'area di lavoro Wrangler in Cloud Data Fusion Studio.

Lettura di dati decimali

  1. Vai all'area di lavoro Wrangler in Cloud Data Fusion.
  2. Aprire un oggetto, ad esempio una tabella, da un database o un file Cloud Storage.

    • Per un database o una connessione BigQuery, se la tabella ha una colonna decimale, Wrangler la converte in un tipo BigDecimal. Quando crei la pipeline da Wrangler, la colonna viene convertita nel tipo di dati decimal.
    • Se il set di dati contiene dati non decimali che vuoi convertire in decimali, utilizza la direttiva set-column:

      set-column : DECIMAL_COLUMN exp:{new("java.math.BigDecimal", INPUT_COLUMN)}
      

      Sostituisci quanto segue:

      • DECIMAL_COLUMN: la colonna decimale da impostare vengono trasformati. Dopo l'esecuzione dell'istruzione, il tipo di dati della colonna modifiche a BigDecimal e lo schema contiene anche tipo di dati appropriato.

      • INPUT_COLUMN: la colonna che viene convertita, che può essere di uno dei seguenti tipi: STRING, INTEGER, LONG, FLOAT o DOUBLE.

    • 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 scala in Wrangler, utilizza un'istruzione simile alla seguente:

      set-column : OUTPUT_COLUMN exp:{new("java.math.BigDecimal", DECIMAL_COLUMN).setScale()}
      

      L'esempio seguente converte una colonna denominata cost da stringa in una decimale, imposta una scala da 9 e restituisce i risultati in una nuova colonna chiamato output-column:

      set-column : output-column exp:{new("java.math.BigDecimal", "cost").setScale(9)}
      

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()
Ottieni il valore non in scala 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()
Converti decimale in 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 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 numero decimale set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate()
Rimuovi gli zeri finali in un 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