Mit Dezimaldaten arbeiten

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

  1. Rufen Sie den Wrangler-Arbeitsbereich in Cloud Data Fusion auf.
  2. Ö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 Datentyp decimal.
    • 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 zu BigDecimal 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 oder DOUBLE.

    • 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 namens output-column ausgegeben:

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

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.

Nächste Schritte