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
- Accéder à l'espace de travail Wrangler dans Cloud Data Fusion
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éesdecimal
. 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é surBigDecimal
. 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
ouDOUBLE
.
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)}
- Pour une base de données ou une connexion BigQuery, si la table
comporte une colonne décimale, Wrangler la convertit en un type
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
- En savoir plus sur les directives Wrangler