Auf dieser Seite wird erläutert, wie Sie Felder in Dezimalzahlen umwandeln und wenn Sie Daten im Wrangler-Arbeitsbereich des Cloud Data Fusion Studio.
Dezimaldaten lesen
- Rufen Sie den Wrangler-Arbeitsbereich in Cloud Data Fusion auf.
Öffnen Sie ein Objekt, z. B. eine Tabelle, aus einer Datenbank oder einer Cloud Storage-Datei.
- Bei einer Datenbank oder einer BigQuery-Verbindung, wenn die Tabelle
eine Dezimalspalte hat, wandelt Wrangler sie in den Typ
BigDecimal
um. Wann? erstellen Sie die Pipeline aus Wrangler, wird die Spalte dann in den Datentypdecimal
. Wenn Ihr Dataset nicht dezimale Daten enthält, in die Sie umwandeln möchten verwenden Sie die Anweisung
set-column
:set-column : DECIMAL_COLUMN exp:{new("java.math.BigDecimal", INPUT_COLUMN)}
Ersetzen Sie Folgendes:
DECIMAL_COLUMN
: die gewünschte Dezimalspalte transformiert haben. Nach Ausführung der Anweisung wird der Datentyp der Spalte wird zuBigDecimal
geändert und das Schema enthält auch den Datentyp zu vergleichen.INPUT_COLUMN
: die Spalte, die konvertiert wird, Folgende Typen sind möglich:STRING
,INTEGER
,LONG
,FLOAT
oderDOUBLE
.
Wenn Ihr Datensatz Werte mit unterschiedlichen Skalen enthält, z. B. 1,05, 2,698 oder 5,8745512, legen Sie die Skala mit einer Wrangler-Richtlinie fest und bearbeiten Sie das Schema in der Pipeline, um die Skala für die Dezimalspalte festzulegen.
Verwenden Sie eine Anweisung wie die folgende, um den Maßstab in Wrangler festzulegen:
set-column : OUTPUT_COLUMN exp:{new("java.math.BigDecimal", DECIMAL_COLUMN).setScale()}
Im folgenden Beispiel wird eine Spalte namens
cost
von einem String in einen Dezimalformat konvertiert, eine Skala von 9 festgelegt und die Ergebnisse in einer neuen Spalte namensoutput-column
ausgegeben:set-column : output-column exp:{new("java.math.BigDecimal", "cost").setScale(9)}
- Bei einer Datenbank oder einer BigQuery-Verbindung, wenn die Tabelle
eine Dezimalspalte hat, wandelt Wrangler sie in den Typ
Dezimaldaten transformieren
Für Dezimalspalten in Wrangler wird die Java-Klasse „BigDecimal“ verwendet.
Nachdem die Spalten in den Datentyp „BigDecimal“ konvertiert wurden, transformieren Sie sie mit Methoden aus Class BigDecimal
.
Transformation | Anweisung |
---|---|
Absoluten Wert abrufen | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.abs() |
Genauigkeit eines Dezimalwerts abrufen | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.precision() |
Skala eines Dezimalwerts abrufen | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.scale() |
Nicht skalierten Wert eines Dezimalwerts abrufen | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.unscaledValue() |
Zwei Dezimalspalten hinzufügen | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.add(DECIMAL_COLUMN_2) |
Dezimalzahl von einer anderen subtrahieren | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.subtract(DECIMAL_COLUMN_2) |
Dezimalzahlen miteinander multiplizieren | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.multiply(DECIMAL_COLUMN_2) |
Eine Dezimalzahlspalte durch eine andere dividieren und den Quotienten zurückgeben | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.divide(DECIMAL_COLUMN_2) |
Eine Dezimalzahlspalte durch eine andere dividieren und den Rest zurückgeben | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.remainder(DECIMAL_COLUMN_2) |
Dezimalzahl in eine Ganzzahl umwandeln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue() |
Dezimalzahl in einen langen Wert umwandeln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.longValue() |
Dezimalzahl in eine Gleitkommazahl umwandeln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.floatValue() |
Dezimalzahl in einen Double-Wert umwandeln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.doubleValue() |
Prüfen, ob ein Dezimalwert mit einem anderen übereinstimmt | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.equals(DECIMAL_COLUMN_2) |
Das Maximum von zwei Dezimalspalten ermitteln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2) |
Das Minimum von zwei Dezimalspalten ermitteln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2) |
Dezimaltrennzeichen um n Stellen nach links verschieben | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n) |
Dezimalpunkt um n Stellen nach rechts verschieben | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n) |
Die n-te Potenz einer Dezimalzahl ermitteln | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.pow(n) |
Dezimalzahl negieren | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate() |
Endnullen in einer Dezimalzahl entfernen | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros() |
Ersetzen Sie Folgendes:
OUTPUT_COLUMN
: Die Spalte mit der Ausgabe der Operation.DECIMAL_COLUMN
: die Dezimalspalte, die transformiert wird.DECIMAL_COLUMN_2
: die zweite Dezimalspalte in der Operation, z. B. wenn Sie die Werte aus zwei Dezimalspalten addieren miteinander verbinden.