Utiliser des données décimales

Cette page explique comment convertir des champs en nombres décimaux et effectuer lors de la préparation des données dans l'espace de travail Wrangler 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. Quand ? vous créez le pipeline à partir de Wrangler, la colonne est ensuite convertie le 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 à laquelle transformées. 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 à convertir, qui peut être de 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 dans Wrangler utilisent la classe Java BigDecimal. Une fois les colonnes converties au type de données BigDecimal, transformez les colonnes avec les 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 une décimale par une 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 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éger une valeur décimale set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate()
Supprimer les zéros de fin d'une décimale set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros()

Remplacez les éléments suivants :

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

Étape suivante