Menangani data desimal

Halaman ini menjelaskan cara mengonversi kolom menjadi desimal dan melakukan transformasi pada kolom tersebut saat Anda menyiapkan data di ruang kerja Wrangler di Cloud Data Fusion Studio.

Membaca data desimal

  1. Buka ruang kerja Wrangler di Cloud Data Fusion.
  2. Membuka objek, seperti tabel, dari database atau file Cloud Storage.

    • Untuk database atau koneksi BigQuery, jika tabel memiliki kolom desimal, Wrangler akan mengonversinya menjadi jenis BigDecimal. Saat Anda membuat pipeline dari Wrangler, kolom tersebut akan dikonversi ke jenis data decimal.
    • Jika set data Anda berisi data non-desimal yang ingin dikonversi ke desimal, gunakan perintah set-column:

      set-column : DECIMAL_COLUMN exp:{new("java.math.BigDecimal", INPUT_COLUMN)}
      

      Ganti kode berikut:

      • DECIMAL_COLUMN: kolom desimal yang akan ditransformasikan. Setelah perintah dieksekusi, jenis data kolom akan berubah menjadi BigDecimal, dan skema juga berisi jenis data yang sesuai.

      • INPUT_COLUMN: kolom yang dikonversi, yang dapat berupa salah satu jenis berikut: STRING, INTEGER, LONG, FLOAT, atau DOUBLE.

    • Jika set data Anda menyertakan nilai dengan skala yang bervariasi, seperti 1,05, 2,698, 5,8745512, tetapkan skala dengan perintah Wrangler dan edit skema dalam pipeline untuk menetapkan skala kolom desimal.

      Untuk menetapkan skala di Wrangler, gunakan perintah yang mirip dengan berikut:

      set-column : OUTPUT_COLUMN exp:{new("java.math.BigDecimal", DECIMAL_COLUMN).setScale()}
      

      Contoh berikut mengonversi kolom bernama cost dari string menjadi desimal, menetapkan skala 9, dan menampilkan hasilnya ke kolom baru yang disebut output-column:

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

Mengubah data desimal

Kolom desimal di Wrangler menggunakan class BigDecimal Java. Setelah kolom dikonversi ke jenis data BigDecimal, ubah kolom dengan metode dari Class BigDecimal.

Transformasi Perintah
Mendapatkan nilai absolut set-column : OUTPUT_COLUMN DECIMAL_COLUMN.abs()
Mendapatkan presisi nilai desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.precision()
Mendapatkan skala nilai desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.scale()
Mendapatkan nilai desimal yang tidak diskalakan set-column : OUTPUT_COLUMN DECIMAL_COLUMN.unscaledValue()
Menambahkan dua kolom desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.add(DECIMAL_COLUMN_2)
Mengurangi desimal dari desimal lain set-column : OUTPUT_COLUMN DECIMAL_COLUMN.subtract(DECIMAL_COLUMN_2)
Mengalikan desimal dengan desimal lain set-column : OUTPUT_COLUMN DECIMAL_COLUMN.multiply(DECIMAL_COLUMN_2)
Membagi kolom desimal dengan kolom lain dan menampilkan hasil bagi set-column : OUTPUT_COLUMN DECIMAL_COLUMN.divide(DECIMAL_COLUMN_2)
Membagi kolom desimal dengan kolom lain dan menampilkan sisanya set-column : OUTPUT_COLUMN DECIMAL_COLUMN.remainder(DECIMAL_COLUMN_2)
Mengonversi desimal menjadi bilangan bulat set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue()
Mengonversi desimal menjadi long set-column : OUTPUT_COLUMN DECIMAL_COLUMN.longValue()
Mengonversi desimal menjadi float set-column : OUTPUT_COLUMN DECIMAL_COLUMN.floatValue()
Mengonversi desimal menjadi ganda set-column : OUTPUT_COLUMN DECIMAL_COLUMN.doubleValue()
Memeriksa apakah nilai desimal sama dengan nilai lainnya set-column : OUTPUT_COLUMN DECIMAL_COLUMN.equals(DECIMAL_COLUMN_2)
Menemukan maksimum dari dua kolom desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2)
Menemukan nilai minimum dari dua kolom desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2)
Memindahkan titik desimal n tempat ke kiri set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n)
Memindahkan titik desimal n tempat ke kanan set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n)
Mendapatkan pangkat ke-n dari bilangan desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.pow(n)
Menghasilkan nilai negatif dari desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate()
Menghapus nol di akhir desimal set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros()

Ganti kode berikut:

  • OUTPUT_COLUMN: kolom yang berisi output operasi.
  • DECIMAL_COLUMN: kolom desimal yang ditransformasi.
  • DECIMAL_COLUMN_2: kolom desimal kedua yang disertakan dalam operasi, seperti saat Anda menambahkan nilai dari dua kolom desimal secara bersamaan.

Langkah selanjutnya