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
- Buka ruang kerja Wrangler di Cloud Data Fusion.
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 datadecimal
. 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 menjadiBigDecimal
, dan skema juga berisi jenis data yang sesuai.INPUT_COLUMN
: kolom yang dikonversi, yang dapat berupa salah satu jenis berikut:STRING
,INTEGER
,LONG
,FLOAT
, atauDOUBLE
.
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 disebutoutput-column
:set-column : output-column exp:{new("java.math.BigDecimal", "cost").setScale(9)}
- Untuk database atau koneksi BigQuery, jika tabel memiliki kolom desimal, Wrangler akan mengonversinya menjadi jenis
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
- Pelajari perintah Wrangler lebih lanjut.