Utiliser des données décimales

Cette page explique comment convertir des champs en décimaux et effectuer des transformations dessus lorsque vous préparez des données dans l'espace de travail Wrangler de Cloud Data Fusion Studio.

Lire des données décimales

  1. Accédez à l'espace de travail Wrangler dans Cloud Data Fusion.
  2. Ouvrez un objet, tel qu'une table, à partir d'une base de données ou d'un fichier Cloud Storage.

    • Pour une base de données ou une connexion BigQuery, si la table comporte une colonne décimale, Wrangler la convertit en type BigDecimal. Lorsque vous créez le pipeline à partir de Wrangler, la colonne est ensuite convertie en type de données decimal.
    • Si votre ensemble de données contient des données non décimales que vous souhaitez convertir en décimales, utilisez la directive set-column:

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

      Remplacez les éléments suivants :

      • DECIMAL_COLUMN: colonne décimale à transformer. Une fois la directive exécutée, le type de données de la colonne passe à BigDecimal, et le schéma contient également le type de données approprié.

      • INPUT_COLUMN: colonne convertie, qui peut être l'un des types suivants: STRING, INTEGER, LONG, FLOAT ou DOUBLE.

    • Si votre ensemble de données inclut des valeurs à échelle variable, telles que 1,05, 2,698 et 5,8745512, définissez l'échelle avec une directive Wrangler et modifiez le schéma dans le pipeline pour définir l'échelle de la colonne décimale.

      Pour définir l'échelle dans Wrangler, utilisez une directive semblable à la suivante:

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

      L'exemple suivant convertit une colonne appelée cost d'une chaîne en décimal, définit une échelle de 9 et affiche les résultats dans une nouvelle colonne appelée output-column:

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

Transformer des données décimales

Les colonnes décimales de Wrangler utilisent la classe Java BigDecimal. Une fois les colonnes converties au type de données BigDecimal, transformez-les à l'aide des méthodes de Class BigDecimal.

Transformation Directive
Obtenir la valeur absolue set-column : OUTPUT_COLUMN DECIMAL_COLUMN.abs()
Obtenir la précision d'une valeur décimale set-column : OUTPUT_COLUMN DECIMAL_COLUMN.precision()
Obtenir l'échelle d'une valeur décimale set-column : OUTPUT_COLUMN DECIMAL_COLUMN.scale()
Obtenir la valeur non étalonnée d'une valeur décimale set-column : OUTPUT_COLUMN DECIMAL_COLUMN.unscaledValue()
Ajouter deux colonnes décimales set-column : OUTPUT_COLUMN DECIMAL_COLUMN.add(DECIMAL_COLUMN_2)
Soustraire un nombre décimal d'un autre set-column : OUTPUT_COLUMN DECIMAL_COLUMN.subtract(DECIMAL_COLUMN_2)
Multiplier un nombre décimal par un autre set-column : OUTPUT_COLUMN DECIMAL_COLUMN.multiply(DECIMAL_COLUMN_2)
Diviser une colonne décimale par une autre et renvoyer le quotient set-column : OUTPUT_COLUMN DECIMAL_COLUMN.divide(DECIMAL_COLUMN_2)
Diviser une colonne décimale par une autre et renvoyer le reste set-column : OUTPUT_COLUMN DECIMAL_COLUMN.remainder(DECIMAL_COLUMN_2)
Convertir un nombre décimal en entier set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue()
Convertir un nombre décimal en long set-column : OUTPUT_COLUMN DECIMAL_COLUMN.longValue()
Convertir un nombre décimal en valeur flottante set-column : OUTPUT_COLUMN DECIMAL_COLUMN.floatValue()
Convertir un nombre décimal en double set-column : OUTPUT_COLUMN DECIMAL_COLUMN.doubleValue()
Vérifier si une valeur décimale est égale à une autre set-column : OUTPUT_COLUMN DECIMAL_COLUMN.equals(DECIMAL_COLUMN_2)
Trouver la valeur maximale de deux colonnes décimales set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2)
Trouver la valeur minimale de deux colonnes décimales set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2)
Déplacer la virgule de n chiffres vers la gauche set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n)
Déplacer la virgule de n chiffres vers la droite set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n)
Obtenir la puissance nième d'un nombre décimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.pow(n)
Négliger un nombre décimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate()
Supprimer les zéros à la fin d'un nombre décimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros()

Remplacez les éléments suivants :

  • OUTPUT_COLUMN: colonne contenant la sortie de l'opération.
  • DECIMAL_COLUMN: colonne décimale transformée.
  • DECIMAL_COLUMN_2: deuxième colonne décimale incluse dans l'opération, par exemple lorsque vous additionnez les valeurs de deux colonnes décimales.

Étape suivante