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éder à 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 un 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 est modifié sur BigDecimal. Le schéma contient également le 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 jeu de données comprend des valeurs avec une échelle variable, telles que 1,05, 2,698, 5.8745512, définissez l'échelle avec une directive Wrangler et modifiez le 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 un décimal, définit une échelle de 9 et génère les résultats dans une nouvelle colonne appelé 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 mise à l'échelle 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 nombre entier set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue()
Convertir un nombre décimal en un nombre 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 le maximum de deux colonnes décimales set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2)
Trouver le minimum de deux colonnes décimales set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2)
Déplacer le séparateur décimal de n chiffres vers la gauche set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n)
Déplacer le signe décimal de n chiffres vers la droite set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n)
Obtenir la puissance n 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, comme lorsque vous ajoutez les valeurs de deux colonnes décimales ensemble.

Étape suivante