Penggunaan ekspresi transformasi data dalam pemetaan aliran data
BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Aliran data tersedia di Alur Azure Data Factory dan Azure Synapse. Artikel ini berlaku untuk memetakan aliran data. Jika Anda baru mengenal transformasi, silakan lihat artikel pengantar Transformasi data menggunakan aliran data pemetaan.
Artikel berikut memberikan detail tentang penggunaan seluruh fungsi dan ekpresi yang didukung oleh Azure Data Factory dan Azure Synapse Analytics dalam memetakan arus data. Untuk ringkasan dari setiap jenis fungsi yang didukung, rujuk artikel berikut:
- Fungsi agregat
- Fungsi array
- Fungsi cache pencarian
- Fungsi konversi
- Fungsi tanggal dan waktu
- Fungsi ekspresi
- Fungsi peta
- Metafungsi
- Fungsi jendela
Daftar abjad dari semua fungsi
Berikut ini adalah daftar abjad dari semua fungsi yang tersedia dalam pemetaan aliran data.
A
abs
abs(<value1> : number) => number
Nilai absolut angka.
abs(-20) -> 20
abs(10) -> 10
acos
acos(<value1> : number) => double
Menghitung nilai terbalik kosinus.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Menambahkan sepasang untai atau angka. Menambahkan tanggal ke banyak hari. Menambahkan durasi ke tanda waktu. Menambahkan satu larik dengan jenis yang sama ke larik lainnya. Sama seperti operator +.
add(10, 20) -> 30
10 + 20 -> 30
add('ice', 'cream') -> 'icecream'
'ice' + 'cream' + ' cone' -> 'icecream cone'
add(toDate('2012-12-12'), 3) -> toDate('2012-12-15')
toDate('2012-12-12') + 3 -> toDate('2012-12-15')
[10, 20] + [30, 40] -> [10, 20, 30, 40]
toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') + (days(1) + hours(2) - seconds(10)) -> toTimestamp('2019-02-04 07:19:18.871', 'yyyy-MM-dd HH:mm:ss.SSS')
addDays
addDays(<date/timestamp> : datetime, <days to add> : integral) => datetime
Tambahkan hari ke tanggal atau tanda waktu. Sama seperti operator + untuk tanggal.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Tambahkan bulan ke tanggal atau tanda waktu. Anda dapat secara opsional melewati zona waktu.
addMonths(toDate('2016-08-31'), 1) -> toDate('2016-09-30')
addMonths(toTimestamp('2016-09-30 10:10:10'), -1) -> toTimestamp('2016-08-31 10:10:10')
and
and(<value1> : boolean, <value2> : boolean) => boolean
Operator AND logika. Sama seperti &&.
and(true, false) -> false
true && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Mendapatkan perkiraan jumlah agregat dari nilai yang berbeda untuk sebuah kolom. Parameter kedua opsional adalah untuk mengontrol kesalahan estimasi.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Membuat larik item. Semua item harus berjenis yang sama. Jika tidak ada item yang ditentukan, larik untai kosong diatur ke default. Sama seperti operator pembuatan [].
array('Seattle', 'Washington')
['Seattle', 'Washington']
['Seattle', 'Washington'][1]
'Washington'
ascii
ascii(<Input> : string) => number
Mengembalikan nilai numerik dari karakter input. Jika string input memiliki lebih dari satu karakter, nilai numerik dari karakter pertama dikembalikan
ascii('A') -> 65
ascii('a') -> 97
asin
asin(<value1> : number) => double
Menghitung nilai sinus terbalik.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Mengembalikan peta semua pesan kesalahan untuk baris dengan assert ID sebagai kuncinya.
Contoh
assertErrorMessages() => ['assert1': 'This row failed on assert1.', 'assert2': 'This row failed on assert2.']. In this example, at(assertErrorMessages(), 'assert1') would return 'This row failed on assert1.'
associate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Membuat peta kunci/nilai. Semua kunci & nilai harus dari jenis yang sama. Jika tidak ada item yang ditentukan, item tersebut default ke peta string ke jenis string. Sama seperti [ -> ]
operator pembuatan. Kunci dan nilai harus bergantian satu sama lain.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Menemukan elemen pada indeks array. Indeks berbasis 1. Indeks di luar batas menghasilkan nilai null. Menemukan nilai dalam peta yang diberi kunci. Jika kunci tidak ditemukan, kunci akan mengembalikan null.
at(['apples', 'pears'], 1) => 'apples'
at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Menghitung nilai tangen terbalik.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Menampilkan sudut dalam radian antara sumbu x positif dari bidang dan titik yang ditentukan oleh koordinat.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Mendapatkan nilai rata-rata kolom.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
Berdasarkan kriteria, rata-rata nilai kolom akan diperoleh.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
Memeriksa apakah nilai pertama berada di antara dua nilai lainnya secara inklusif. Nilai numerik, string, dan tanggalwaktu dapat dibandingkan
between(10, 5, 24)
true
between(currentDate(), currentDate() + 10, currentDate() + 20)
false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Operator And Bitwise di seluruh jenis integral. Sama seperti operator &
bitwiseAnd(0xf4, 0xef)
0xe4
(0xf4 & 0xef)
0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Operator Or Bitwise di seluruh jenis integral. Sama seperti operator |
bitwiseOr(0xf4, 0xef)
0xff
(0xf4 | 0xef)
0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Operator Or Bitwise di seluruh jenis integral. Sama seperti operator |
bitwiseXor(0xf4, 0xef)
0x1b
(0xf4 ^ 0xef)
0x1b
(true ^ false)
true
(true ^ true)
false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Menghitung hash Blake2 dari sekumpulan kolom dari berbagai jenis data primitif yang diberi panjang bit, yang hanya dapat berupa kelipatan 8 antara 8 & 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Menghitung hash Blake2 dari sekumpulan kolom dari berbagai jenis data primitif yang diberi panjang bit, yang hanya dapat berupa kelipatan 8 antara 8 & 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Temukan sub item dalam struktur atau array struktur. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu tindakan konversi jenis (? tanggal, ? string ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
byItem( byName('customer'), 'orderItems') ? (itemName as string, itemQty as integer)
byItem( byItem( byName('customer'), 'orderItems'), 'itemName') ? string
byName
byName(<column name> : string, [<stream name> : string]) => any
Memilih nilai kolom menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
toString(byName('parent'))
toLong(byName('income'))
toBoolean(byName('foster'))
toLong(byName($debtCol))
toString(byName('Bogus Column'))
toString(byName('Bogus Column', 'DeriveStream'))
byNames
byNames(<column names> : array, [<stream name> : string]) => any
Pilih larik kolom menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan untuk kolom, seluruh output adalah nilai NULL. Nilai yang dikembalikan memerlukan fungsi konversi jenis (toDate, toString, ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
toString(byNames(['parent', 'child']))
byNames(['parent']) ? string
toLong(byNames(['income']))
byNames(['income']) ? long
toBoolean(byNames(['foster']))
toLong(byNames($debtCols))
toString(byNames(['a Column']))
toString(byNames(['a Column'], 'DeriveStream'))
byNames(['orderItem']) ? (itemName as string, itemQty as integer)
byOrigin
byOrigin(<column name> : string, [<origin stream name> : string]) => any
Memilih nilai kolom menurut nama di aliran asal. Argumen kedua adalah nama aliran asal. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Memilih larik kolom menurut nama di aliran. Argumen kedua adalah aliran tempat asalnya. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Menemukan jalur hierarkis menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Jika tidak ada jalur seperti itu yang ditemukan, maka akan kembali ke null. Nama/jalur kolom yang diketahui pada waktu desain harus ditangani hanya menurut nama atau jalur notasi titik. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Memilih nilai kolom berdasarkan posisi relatifnya (berbasis 1) di aliran. Jika posisinya di luar batas, maka akan kembali ke nilai NULL. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Input komputasi tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
toString(byPosition(1))
toDecimal(byPosition(2), 10, 2)
toBoolean(byName(4))
toString(byName($colName))
toString(byPosition(1234))
C
case
case(<condition> : boolean, <true_expression> : any, <false_expression> : any, ...) => any
Berdasarkan kondisi bergantian berlaku satu nilai atau yang lainnya. Jika angka input genap, angka lainnya diatur ke default ke NULL untuk kondisi terakhir.
case(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'
case(10 + 20 == 25, 'bojjus', 'do' < 'go', 'gunchus') -> 'gunchus'
isNull(case(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus')) -> true
case(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus', 'dumbo') -> 'dumbo'
cbrt
cbrt(<value1> : number) => double
Menghitung akar kubus dari angka.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Menampilkan bilangan bulat terkecil yang tidak lebih kecil dari angkanya.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Mengembalikan karakter ascii yang diwakili oleh angka input. Jika angka lebih besar dari 256, hasilnya setara dengan karakter(angka % 256)
char(65) -> 'A'
char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Menampilkan nilai non-null pertama dari sekumpulan input. Semua input harus memiliki jenis yang sama.
coalesce(10, 20) -> 10
coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Mengumpulkan semua nilai ekspresi dalam grup agregat ke dalam larik. Struktur dapat dikumpulkan dan diubah menjadi struktur alternatif selama proses ini. Jumlah item sama dengan jumlah baris dalam grup tersebut dan dapat berisi nilai null. Jumlah item yang dikumpulkan harus kecil.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Mengumpulkan semua nilai ekspresi dalam grup agregat ke dalam larik yang unik. Struktur dapat dikumpulkan dan diubah menjadi struktur alternatif selama proses ini. Jumlah item sama dengan jumlah baris dalam grup tersebut dan dapat berisi nilai null. Jumlah item yang dikumpulkan harus kecil.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(<value1>
columnNames( : string, i><value1> : boolean) => array
Mendapatkan nama semua kolom output untuk aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen pertama. Argumen kedua juga opsional, dengan pernyataan false sebagai default. Jika Anda mengatur argumen kedua ke true()
, Data Factory hanya mengembalikan kolom yang di-drifted melalui penyimpangan skema.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Mendapatkan nilai dari semua kolom output untuk aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Membandingkan dua nilai dengan jenis yang sama. Menampilkan bilangan bulat negatif jika value1 < value2, 0 jika value1 == value2, nilai positif jika value1 > value2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Menggabungkan jumlah variabel untai bersama-sama. Sama seperti operator + dengan untai.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Menggabungkan jumlah variabel untai bersama-sama dengan pemisah. Parameter pertama adalah pemisah.
concatWS(' ', 'dataflow', 'is', 'awesome') -> 'dataflow is awesome'
isNull(concatWS(null, 'dataflow', 'is', 'awesome')) -> true
concatWS(' is ', 'dataflow', 'awesome') -> 'dataflow is awesome'
contains
contains(<value1> : array, <value2> : unaryfunction) => boolean
Menampilkan true jika elemen dalam larik yang disediakan dievaluasi sebagai true dalam predikat yang disediakan. Berisi harapan sebagai referensi ke satu elemen dalam fungsi predikat sebagai #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Menghitung nilai kosinus.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Menghitung kosinus hiperbolik nilai.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Mendapatkan jumlah agregat nilai. Jika satu atau beberapa kolom opsional ditentukan, kolom tersebut mengabaikan nilai NULL dalam hitungan.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Dapatkan jumlah nilai gabungan termasuk null.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Mendapatkan jumlah agregat nilai yang berbeda dari sekumpulan kolom.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Dapatkan jumlah nilai gabungan yang berbeda dari sekumpulan kolom termasuk NULL.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
Berdasarkan kriteria, jumlah agregat nilai akan diperoleh. Jika kolom opsional ditentukan, kolom akan mengabaikan nilai NULL dalam jumlah.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
Mendapatkan kovarians populasi antara dua kolom.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Berdasarkan kriteria, kovarians populasi dua kolom akan diperoleh.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
Mendapatkan contoh kovarians dua kolom.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Berdasarkan kriteria, kovarians sampel dua kolom.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Menghitung hash CRC32 dari kumpulan kolom dari berbagai jenis data primitif yang diberi panjang bit yang hanya dapat berupa nilai 0(256), 224, 256, 384, 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
Fungsi CumeDist menghitung posisi nilai relatif terhadap semua nilai dalam partisi. Hasilnya adalah jumlah baris sebelum atau sama dengan baris saat ini dalam urutan partisi dibagi dengan jumlah total baris di partisi jendela. Nilai ikatan apa pun dalam urutan dievaluasi ke posisi yang sama.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Mendapatkan tanggal saat ini ketika pekerjaan ini mulai dijalankan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal pusat/wilayah data pabrik data digunakan sebagai default. Lihat kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
currentDate() == toDate('2250-12-31') -> false
currentDate('PST') == toDate('2250-12-31') -> false
currentDate('America/New_York') == toDate('2250-12-31') -> false
currentTimestamp
currentTimestamp() => timestamp
Mendapatkan tanda waktu saat ini ketika pekerjaan mulai dijalankan dengan zona waktu lokal.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Mendapatkan tanda waktu saat ini sebagai UTC. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Ini default ke zona waktu saat ini. Lihat kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. Untuk mengonversi waktu UTC ke penggunaan zona waktu yang berbeda fromUTC()
.
currentUTC() == toTimestamp('2050-12-12 19:18:12') -> false
currentUTC() != toTimestamp('2050-12-12 19:18:12') -> true
fromUTC(currentUTC(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true
D
dayOfMonth
dayOfMonth(<value1> : datetime) => integer
Mendapatkan hari dalam sebulan yang diberikan tanggal.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Mendapatkan hari dalam seminggu yang diberikan tanggal. 1 - Minggu, 2 - Senin ..., 7 - Sabtu.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Mendapatkan hari dalam setahun yang diberikan tanggal.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Durasi dalam milidetik selama jumlah hari.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Mendekode data input yang dikodekan ke dalam string berdasarkan charset yang diberikan. Argumen kedua (opsional) dapat digunakan untuk menentukan charset mana yang akan digunakan - 'US-ASCII', 'ISO-8859-1', 'UTF-8' (default), 'UTF-16BE', 'UTF-16LE', 'UTF-16'
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Mengonversi radian menjadi derajat.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Menghitung peringkat nilai dalam grup nilai yang ditentukan dalam urutan jendela menurut klausul. Hasilnya adalah satu ditambah jumlah baris sebelum atau sama dengan baris saat ini dalam urutan partisi. Nilai tidak menghasilkan celah dalam urutan. Peringkat Padat berfungsi meski data tidak diurutkan dan dapat digunakan untuk mencari perubahan dalam nilai.
denseRank()
distinct
distinct(<value1> : array) => array
Mengembalikan satu set item yang berbeda dari array.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Membagi pasangan angka. Sama seperti operator /
.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Hapus sebanyak mungkin karakter dari kiri untai. Jika drop yang diminta melebihi panjang untai, untai kosong akan dikembalikan.
- dropLeft('bojjus', 2) => 'jjus'
- dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Hapus sebanyak mungkin karakter dari kanan untai. Jika drop yang diminta melebihi panjang untai, untai kosong akan dikembalikan.
- dropLeft('bojjus', 2) => 'jjus'
- dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Mengodekan data string input ke dalam biner berdasarkan charset. Argumen kedua (opsional) dapat digunakan untuk menentukan charset mana yang akan digunakan - 'US-ASCII', 'ISO-8859-1', 'UTF-8' (default), 'UTF-16BE', 'UTF-16LE', 'UTF-16'
encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))
endsWith
endsWith(<string> : string, <substring to check> : string) => boolean
Memeriksa apakah untai berakhiran untai yang disediakan.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Operator perbandingan sama dengan. Sama seperti operator ==.
equals(12, 24) -> false
12 == 24 -> false
'bad' == 'bad' -> true
isNull('good' == toString(null)) -> true
isNull(null == null) -> true
equalsIgnoreCase
equalsIgnoreCase(<value1> : string, <value2> : string) => boolean
Operator perbandingan sama dengan yang mengabaikan huruf besar/kecil. Sama seperti <=> operator.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Melewati untai sesuai dengan format. Nilai literal untuk format yang dapat diterima meliputi 'json', 'xml', 'ecmascript', 'html', 'java'.
except
except(<value1> : array, <value2> : array) => array
Mengembalikan set perbedaan satu array dari duplikat yang menghilangkan yang lainnya.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Menghasilkan ekspresi dari string. Ini sama dengan menulis ekspresi ini dalam bentuk nonliteral. Ini dapat digunakan untuk meneruskan parameter sebagai representasi untai.
- expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Menghitung faktorial angka.
factorial(5) -> 120
false
false() => boolean
Selalu menampilkan nilai false. Gunakan fungsi syntax(false())
jika ada kolom bernama 'false'.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Filter elemen dari array yang tidak memenuhi predikat yang disediakan. Memfilter harapan referensi ke satu elemen dalam fungsi predikat sebagai #item.
filter([1, 2, 3, 4], #item > 2) -> [3, 4]
filter(['a', 'b', 'c', 'd'], #item == 'a' || #item == 'b') -> ['a', 'b']
find
find(<value1> : array, <value2> : unaryfunction) => any
Temukan item pertama dari array yang sesuai dengan kondisi. Dibutuhkan fungsi filter tempat Anda dapat mengatasi item dalam larik sebagai #item. Untuk peta berlapis banyak, Anda dapat merujuk ke peta induk menggunakan notasi #item_n (#item_1, #item_2...).
find([10, 20, 30], #item > 10) -> 20
find(['azure', 'data', 'factory'], length(#item) > 4) -> 'azure'
find([ @( name = 'Daniel', types = [ @(mood = 'jovial', behavior = 'terrific'), @(mood = 'grumpy', behavior = 'bad') ] ), @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] ) ], contains(#item.types, #item.mood=='happy') /*Filter out the happy kid*/ )
@( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] )
first
first(<value1> : any, [<value2> : boolean]) => any
Mendapatkan nilai pertama dari grup kolom. Jika parameter kedua ignoreNulls dihilangkan, Data Factory mengasumsikan false.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Meratakan array atau banyak array menjadi satu array. Array item atomik dikembalikan tanpa diubah. Argumen terakhir adalah opsional dan default ke false untuk meratakan secara berulang lebih dari satu tingkat kedalaman.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Menampilkan bilangan bulat terbesar yang tidak lebih besar dari angka.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Mendecode untai yang dikodekan basis64 yang diberikan. Anda dapat secara opsional melewatkan jenis pengkodean.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Dikonversi ke tanda waktu dari UTC. Anda dapat secara opsional melewati zona waktu dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Ini default ke zona waktu saat ini. Lihat kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
fromUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
fromUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true
G
greater
greater(<value1> : any, <value2> : any) => boolean
Operator perbandingan lebih besar. Sama seperti > operator.
greater(12, 24) -> false
('dumbo' > 'dum') -> true
(toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS') > toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true
greaterOrEqual
greaterOrEqual(<value1> : any, <value2> : any) => boolean
Operator perbandingan lebih besar dari atau sama dengan. Sama seperti >= operator.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Menampilkan nilai terbesar di antara daftar nilai sebagai input yang melewati nilai null. Menampilkan null jika semua input null.
greatest(10, 30, 15, 20) -> 30
greatest(10, toInteger(null), 20) -> 20
greatest(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2011-12-12')
greatest(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS'), toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')
H
hasColumn
hasColumn(<column name> : string, [<stream name> : string]) => boolean
Memeriksa nilai kolom menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Memeriksa apakah aset dengan ID yang disediakan ditandai sebagai kesalahan.
Contoh
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Memeriksa apakah jalur hierarkis tertentu ada menurut nama dalam aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Nama/jalur kolom yang diketahui pada waktu desain harus ditangani hanya menurut nama atau jalur notasi titik. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
Menampilkan representasi untai heksa dari nilai biner
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Mendapatkan nilai jam tanda waktu. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
hour(toTimestamp('2009-07-30 12:58:59')) -> 12
hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12
hours
hours(<value1> : integer) => long
Durasi dalam milidetik untuk jumlah jam.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Berdasarkan kondisi berlaku satu nilai atau nilai lainnya. Jika yang lain tidak ditentukan, nilai dianggap NULL. Kedua nilai harus kompatibel (numerik, string...).
iif(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'
iif(10 > 30, 'dumbo', 'gumbo') -> 'gumbo'
iif(month(toDate('2018-12-01')) == 12, 345.12, 102.67) -> 345.12
iifNull
iifNull(<value1> : any, [<value2> : any], ...) => any
Dengan dua atau lebih input, dapat mengembalikan item pertama yang bukan null. Fungsi ini setara dengan coalesce.
iifNull(10, 20) -> 10
iifNull(null, 20, 40) -> 20
iifNull('azure', 'data', 'factory') -> 'azure'
iifNull(null, 'data', 'factory') -> 'data'
in
in(<array of items> : array, <item to find> : any) => boolean
Memeriksa apakah item ada dalam array.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Mengonversi huruf pertama setiap kata menjadi huruf besar. Kata-kata diidentifikasi sebagai dipisahkan oleh spasi putih.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Menemukan posisi (berbasis 1) substring dalam string. 0 ditampilkan jika tidak ditemukan.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
Mengembalikan sekumpulan persimpangan item yang berbeda dari dua array.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Memeriksa apakah posisi bit diatur dalam bitset ini
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Memeriksa apakah nilai untai berupa nilai boolean menurut aturan toBoolean()
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Memeriksa apakah nilai untai berupa nilai byte yang diberi format opsional menurut aturan toByte()
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
Memeriksa apakah untai tanggal input berupa tanggal menggunakan format tanggal input opsional. Lihat SimpleDateFormat Java untuk mengetahui format yang tersedia. Jika format tanggal input dihilangkan, format default-nya adalah yyyy-[M]M-[d]d
. Format yang diterima meliputi [ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ]
isDate('2012-8-18') -> true
isDate('12/18--234234' -> 'MM/dd/yyyy') -> false
isDecimal
isDecimal (<value1> : string) => boolean
Memeriksa apakah nilai string berupa nilai desimal yang diberi format opsional sesuai aturan toDecimal()
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Memeriksa apakah baris ditandai untuk dihapus. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Menemukan apakah kolom atau kumpulan kolom berbeda. Null tidak akan dihitung sebagai nilai yang berbeda
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Periksa apakah nilai string berupa nilai dengan bilangan cacah ganda yang diberi format opsional sesuai aturan toDouble()
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Memeriksa apakah baris ditandai sebagai kesalahan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Periksa apakah nilai string berupa nilai dengan bilangan cacah yang diberi format opsional sesuai aturan toFloat()
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Memeriksa apakah baris ditandai untuk diabaikan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Memeriksa apakah baris ditandai untuk disisipkan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Periksa apakah nilai string berupa nilai dengan bilangan bulat yang diberi format opsional sesuai aturan toInteger()
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Periksa apakah nilai string berupa nilai dengan jangkauan panjang yang diberi format opsional sesuai aturan toLong()
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Memeriksa apakah baris cocok di pencarian. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Periksa apakah ini bukan angka.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Memeriksa apakah nilainya NULL.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Periksa apakah nilai string berupa nilai dengan jangkauan pendek yang diberi format opsional sesuai aturan toShort()
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
Memeriksa apakah untai tanggal input berupa tanda waktu menggunakan format tanda waktu input opsional. Lihat SimpleDateFormat Java untuk mengetahui format yang tersedia. Jika tanda waktu dihilangkan, pola default yyyy-[M]M-[d]d hh:mm:ss[.f...]
akan digunakan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Tanda waktu mendukung hingga akurasi milidetik dengan nilai 999. Lihat SimpleDateFormat Java untuk mengetahui format yang tersedia.
isTimestamp('2016-12-31 00:12:00') -> true
isTimestamp('2016-12-31T00:12:00' -> 'yyyy-MM-dd\\'T\\'HH:mm:ss' -> 'PST') -> true
isTimestamp('2012-8222.18') -> false
isUpdate
isUpdate([<value1> : integer]) => boolean
Memeriksa apakah baris ditandai untuk diperbarui. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Memeriksa apakah baris ditandai untuk disisipkan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
Mendapatkan jarak JaroWinkler antara dua untai.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Membuat peta kunci/nilai. Parameter pertama adalah array kunci dan yang kedua adalah array nilai. Kedua array harus memiliki panjang yang sama.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Mendapatkan kurtosis kolom.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, kurtosis kolom akan diperoleh.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Mendapatkan nilai baris n yang dievaluasi parameter pertama sebelum baris saat ini. Parameter kedua adalah jumlah baris yang akan digunakan kembali dan nilai default-nya adalah 1. Jika barisnya tidak terlalu banyak, nilai null akan ditampilkan kembali kecuali jika nilai default telah ditentukan.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Mendapatkan nilai terakhir grup kolom. Jika parameter kedua ignoreNulls dihilangkan, parameter kedua diasumsikan sebagai false.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Mendapatkan tanggal terakhir dari bulan yang diberikan tanggal.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
Mendapatkan baris n yang dievaluasi parameter pertama setelah baris saat ini. Parameter kedua adalah jumlah baris yang diharapkan dan nilai defaultnya adalah 1. Jika barisnya tidak terlalu banyak, nilai null akan ditampilkan kembali kecuali jika nilai default telah ditentukan.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Operator perbandingan kurang dari atau sama dengan. Sama seperti <= operator.
least(10, 30, 15, 20) -> 10
least(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2000-12-12')
left
left(<string to subset> : string, <number of characters> : integral) => string
Mengekstrak permulaan substring di indeks 1 dengan jumlah karakter. Sama seperti SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Menampilkan panjang untai.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Operator perbandingan lebih sedikit. Sama seperti < operator.
lesser(12, 24) -> true
('abcd' < 'abc') -> false
(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') < toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true
lesserOrEqual
lesserOrEqual(<value1> : any, <value2> : any) => boolean
Operator perbandingan kurang dari atau sama dengan. Sama seperti <= operator.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
Mendapatkan jarak levenshtein antara dua untai.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
Polanya adalah untai yang dicocokkan secara harfiah. Pengecualian adalah simbol khusus berikut: _ cocok dengan satu karakter dalam input (mirip dengan. Dalam posix
ekspresi reguler) % cocok dengan nol atau lebih karakter dalam input (mirip .*
dengan dalam posix
ekspresi reguler).
Karakter escape-nya adalah ''. Jika karakter escape mendahului simbol khusus atau karakter escape lainnya, karakter berikut ini dicocokkan secara harfiah. Karakter lain akan tidak valid jika dibuat escape.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Menemukan posisi (berbasis 1) substring dalam string yang memulai posisi tertentu. Jika posisi dihilangkan, itu dianggap dari awal string. 0 ditampilkan jika tidak ditemukan.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Menghitung nilai log. Basis opsional dapat diberikan nomor Euler lain jika digunakan.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Menghitung nilai log berdasarkan basis 10.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Mencari baris pertama dari cache sink menggunakan tombol yang ditentukan yang cocok dengan kunci dari cache sink.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Memberi huruf kecil pada untai.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Melapisi kiri untai dengan lapisan yang disediakan hingga memiliki panjang tertentu. Jika string sama dengan atau lebih besar dari panjang, maka akan dipangkas sesuai panjangnya.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Memangkas kiri untai karakter awal. Jika tidak ditentukan, parameter kedua akan memangkas spasi putih. Selain itu, karakter apa pun yang ditentukan dalam parameter kedua akan dipangkas.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Memetakan setiap elemen array ke elemen baru menggunakan ekspresi yang disediakan. Azure Maps mengharapkan referensi ke satu elemen dalam fungsi ekspresi sebagai #item.
map([1, 2, 3, 4], #item + 2) -> [3, 4, 5, 6]
map(['a', 'b', 'c', 'd'], #item + '_processed') -> ['a_processed', 'b_processed', 'c_processed', 'd_processed']
mapAssociation
mapAssociation(<value1> : map, <value2> : binaryFunction) => array
Mengubah peta dengan mengaitkan kunci ke nilai baru. Mengembalikan array. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi item sebagai nilai #item dan indeks saat ini sebagai #index.
mapAssociation(['bojjus' -> 'gunchus', 'appa' -> 'ammi'], @(key = #key, value = #value)) => [@(key = 'bojjus', value = 'gunchus'), @(key = 'appa', value = 'ammi')]
mapIf
mapIf (<value1> : array, <value2> : binaryfunction, <value3>: binaryFunction) => any
Secara kondisional memetakan array ke array lainnya dengan panjang yang sama atau lebih kecil. Nilai dapat berjenis data apa pun termasuk structTypes. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi item dalam larik sebagai #item dan indeks saat ini sebagai #index. Untuk peta berlapis banyak, Anda dapat melihat peta induk menggunakan #item_[n](#item_1, #index_1...)
notasi.
mapIf([10, 20, 30], #item > 10, #item + 5) -> [25, 35]
mapIf(['icecream', 'cake', 'soda'], length(#item) > 4, upper(#item)) -> ['ICECREAM', 'CAKE']
mapIndex
mapIndex(<value1> : array, <value2> : binaryfunction) => any
Memetakan setiap elemen array ke elemen baru menggunakan ekspresi yang disediakan. Peta mengharapkan referensi ke satu elemen dalam fungsi ekspresi sebagai #item dan referensi ke elemen indeks sebagai #item.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Perulangan dari 1 ke panjang untuk membuat array dengan panjang tersebut. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi indeks dalam larik sebagai #index. Untuk peta berlapis banyak, Anda dapat melihat peta induk menggunakan notasi #index_n (#index_1, #index_2...).
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Mendapatkan nilai maksimum kolom.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
Berdasarkan kriteria, nilai maksimum kolom akan diperoleh.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Menghitung hash MD5 dari sekumpulan kolom berbagai jenis data primitif dan menampilkan string heksa 32 karakter. Ini dapat digunakan untuk menghitung sidik jari untuk baris.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Mendapatkan nilai rata-rata kolom. Sama seperti AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
Berdasarkan kriteria, nilai rata-rata kolom akan diperoleh. Sama seperti avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Mendapatkan nilai milidetik tanggal. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
milliseconds
milliseconds(<value1> : integer) => long
Durasi dalam milidetik untuk jumlah milidetik.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Mendapatkan nilai minimum kolom.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
Berdasarkan kriteria, nilai minimum kolom akan diperoleh.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Mengurangi angka. Mengurangi jumlah hari dari tanggal tertentu. Mengurangi durasi dari tanda waktu. Kurangi dua tanda waktu untuk mendapatkan selisih dalam milidetik. Sama seperti operator -.
minus(20, 10) -> 10
20 - 10 -> 10
minus(toDate('2012-12-15'), 3) -> toDate('2012-12-12')
toDate('2012-12-15') - 3 -> toDate('2012-12-12')
toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') + (days(1) + hours(2) - seconds(10)) -> toTimestamp('2019-02-04 07:19:18.871', 'yyyy-MM-dd HH:mm:ss.SSS')
toTimestamp('2019-02-03 05:21:34.851', 'yyyy-MM-dd HH:mm:ss.SSS') - toTimestamp('2019-02-03 05:21:36.923', 'yyyy-MM-dd HH:mm:ss.SSS') -> -2072
minute
minute(<value1> : timestamp, [<value2> : string]) => integer
Mendapatkan nilai menit dari tanda waktu. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
minute(toTimestamp('2009-07-30 12:58:59')) -> 58
minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58
minutes
minutes(<value1> : integer) => long
Durasi dalam milidetik untuk jumlah menit.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Mencari semua baris yang cocok dari cache sink menggunakan tombol yang ditentukan yang cocok dengan tombol cache sink.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Modulus pasangan angka. Sama seperti operator %.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Mendapatkan nilai bulan dari tanggal atau tanda waktu.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
Mendapatkan jumlah bulan di antara dua tanggal. Anda dapat membulatkan perhitungan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677
multiply
multiply(<value1> : any, <value2> : any) => any
Mengalikan pasangan angka. Sama seperti operator *.
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
Meniadakan angka. Mengubah angka positif menjadi negatif dan sebaliknya.
negate(13) -> -13
nextSequence
nextSequence() => long
Menampilkan urutan unik berikutnya. Angka hanya berurutan dalam partisi dan diawali oleh partitionId.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Menormalkan nilai untai untuk memisahkan karakter unicode beraksen.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Operator negasi logika.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Operator perbandingan tidak sama dengan. Sama seperti operator !=.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
Fungsi NTile
membagi baris untuk setiap partisi jendela menjadi wadah n
dalam rentang dari 1 hingga maksimal n
. Nilai wadah akan berbeda paling banyak 1. Jika jumlah baris dalam partisi tidak dibagi rata menjadi dalam jumlah wadah, maka sisa nilainya akan didistribusikan satu per wadah, dimulai dari wadah pertama. Fungsi NTile
berguna untuk penghitungan tertiles
, kuartil, desil, dan statistik ringkasan umum lainnya. Fungsi ini menghitung dua variabel selama inisialisasi: Ukuran wadah biasa akan memiliki satu baris tambahan yang ditambahkan ke dalamnya. Kedua variabel didasarkan pada ukuran partisi saat ini. Selama proses penghitungan, fungsi akan melacak nomor baris saat ini, nomor wadah saat ini, dan nomor baris tempat wadah akan berubah (bucketThreshold). Jika jumlah baris saat ini mencapai ambang batas wadah, nilai wadah akan ditingkatkan satu dan ambang batasnya bertambah berdasarkan ukuran wadah (ditambah satu baris tambahan jika wadah saat ini berlapis).
nTile()
nTile(numOfBuckets)
null
null() => null
Menampilkan nilai NULL. Gunakan fungsi syntax(null())
jika ada kolom bernama 'null'. Setiap operasi yang menggunakan akan menghasilkan NULL.
isNull('dumbo' + null) -> true
isNull(10 * null) -> true
isNull('') -> false
isNull(10 + 20) -> false
isNull(10/0) -> true
O
or
or(<value1> : boolean, <value2> : boolean) => boolean
Operator OR logika. Sama seperti ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Mendapatkan seluruh kolom output untuk aliran asal tempat kolom dibuat. Harus diapit dalam fungsi lain.
array(toString(originColumns('source1')))
output
output() => any
Menampilkan baris pertama hasil cache sink
cacheSink#output()
outputs
output() => any
Menampilkan seluruh rangkaian baris output dari hasil cache sink
cacheSink#outputs()
P
partitionId
partitionId() => integer
Mengembalikan id partisi saat ini di tempat baris input.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Modulus positif pasangan angka.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Menaikkan satu angka ke kekuatan angka lainnya.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Mengonversi derajat ke radian
radians(180) => 3.141592653589793
random
random(<value1> : integral) => long
Menampilkan angka acak yang diberikan seed opsional dalam partisi. Seed harus berupa nilai tetap dan digunakan sesuai dengan partitionId untuk menghasilkan nilai acak
random(1) == 1 -> false
rank
rank() => integer
Menghitung peringkat nilai dalam grup nilai yang ditentukan dalam urutan jendela menurut klausul. Hasilnya adalah satu ditambah jumlah baris sebelum atau sama dengan baris saat ini dalam urutan partisi. Nilai ini akan menghasilkan celah dalam urutan. Peringkat berfungsi meski data tidak diurutkan dan dapat digunakan untuk mencari perubahan dalam nilai.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Mengubah peta dengan mengaitkan kunci ke nilai baru. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi item sebagai nilai #item dan indeks saat ini sebagai #index.
reassociate(['fruit' -> 'apple', 'vegetable' -> 'tomato'], substring(#key, 1, 1) + substring(#value, 1, 1)) => ['fruit' -> 'fa', 'vegetable' -> 'vt']
reduce
reduce(<value1> : array, <value2> : any, <value3> : binaryfunction, <value4> : unaryfunction) => any
Mengakumulasi elemen dalam array. Kurangi mengharapkan referensi ke akumulator dan satu elemen dalam fungsi ekspresi pertama sebagai #acc dan #item dan mengharapkan nilai yang dihasilkan sebagai #result yang akan digunakan dalam fungsi ekspresi kedua.
toString(reduce(['1', '2', '3', '4'], '0', #acc + #item, #result)) -> '01234'
regexExtract
regexExtract(<string> : string, <regex to find> : string, [<match group 1-based index> : integral]) => string
Ekstrak substring yang cocok untuk pola regex yang diberikan. Parameter terakhir mengidentifikasi grup kecocokan dan diatur ke default ke 1 jika dihilangkan. Gunakan <regex>
(kutipan balik) untuk mencocokkan untai tanpa menekan tombol escape. Indeks 0 mengembalikan semua kecocokan. Tanpa grup kecocokan, indeks 1 ke atas tidak akan mengembalikan hasil apa pun.
regexExtract('Cost is between 600 and 800 dollars', '(\\d+) and (\\d+)', 2) -> '800'
regexExtract('Cost is between 600 and 800 dollars', `(\d+) and (\d+)`, 2) -> '800'
regexMatch
regexMatch(<string> : string, <regex to match> : string) => boolean
Memeriksa apakah untai cocok dengan pola regex yang diberikan. Gunakan <regex>
(kutipan balik) untuk mencocokkan untai tanpa menekan tombol escape.
regexMatch('200.50', '(\\d+).(\\d+)') -> true
regexMatch('200.50', `(\d+).(\d+)`) -> true
regexReplace
regexReplace(<string> : string, <regex to find> : string, <substring to replace> : string) => string
Ganti semua kemunculan pola regex dengan substring lain dalam untai yang diberikan Gunakan <regex>
(kutipan balik) untuk mencocokkan untai tanpa menekan tombol escape.
regexReplace('100 and 200', '(\\d+)', 'bojjus') -> 'bojjus and bojjus'
regexReplace('100 and 200', `(\d+)`, 'gunchus') -> 'gunchus and gunchus'
regexSplit
regexSplit(<string to split> : string, <regex expression> : string) => array
Memisahkan untai berdasarkan pemisah berdasarkan regex dan menampilkan larik untai.
regexSplit('bojjusAgunchusBdumbo', `[CAB]`) -> ['bojjus', 'gunchus', 'dumbo']
regexSplit('bojjusAgunchusBdumboC', `[CAB]`) -> ['bojjus', 'gunchus', 'dumbo', '']
(regexSplit('bojjusAgunchusBdumboC', `[CAB]`)[1]) -> 'bojjus'
isNull(regexSplit('bojjusAgunchusBdumboC', `[CAB]`)[20]) -> true
replace
replace(<string> : string, <substring to find> : string, [<substring to replace> : string]) => string
Ganti semua kemunculan substring dengan substring lain dalam untai yang diberikan. Jika parameter terakhir dihilangkan, parameter diatur ke default menjadi string kosong.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Membalikkan untai.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Mengekstrak substring dengan jumlah karakter dari kanan. Sama seperti SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Memeriksa apakah untai cocok dengan pola regex yang diberikan.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
Membulatkan angka yang diberi skala opsional dan mode pembulatan opsional. Jika skala dihilangkan, defaultnya adalah 0. Jika mode dihilangkan, mode diatur ke default ke ROUND_HALF_UP(5). Nilai untuk pembulatan meliputi
- ROUND_UP - Mode pembulatan untuk membulatkan jauh dari nol.
- ROUND_DOWN - Mode pembulatan untuk membulatkan ke arah nol.
- ROUND_CEILING - Mode pembulatan untuk membulatkan ke arah tak terbatas positif. [Sama seperti ROUND_UP jika input positif. Jika negatif, berulah sebagai ROUND_DOWN. Contoh = -1.1 akan menjadi -1.0 dengan ROUND_CEILING dan -2 dengan ROUND_UP]
- ROUND_FLOOR - Mode pembulatan untuk membulatkan ke arah tak terbatas negatif. [Sama seperti ROUND_DOWN jika input positif. Jika negatif, berulah sebagai ROUND_UP]
- ROUND_HALF_UP - Mode pembulatan untuk berputar menuju "tetangga terdekat" kecuali kedua tetangga bersifat ekuisis, dalam hal ini ROUND_UP. [Paling umum + default untuk Aliran Data].
- ROUND_HALF_DOWN - Mode pembulatan untuk membulatkan ke arah "tetangga terdekat" kecuali kedua tetangga bersifat ekuisis, dalam hal ini ROUND_DOWN.
- ROUND_HALF_EVEN - Mode pembulatan untuk membulatkan ke arah "tetangga terdekat" kecuali kedua tetangga bersifat ekuisisan, dalam hal ini, bulat menuju tetangga yang bahkan.
- ROUND_UNNECESSARY - Mode pembulatan untuk menegaskan bahwa operasi putaran memiliki hasil yang tepat, sehingga tidak diperlukan pembulatan.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
Menetapkan penomoran baris berurutan untuk baris dalam jendela yang dimulai dengan 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Melapisi kanan untai dengan lapisan yang disediakan hingga memiliki panjang tertentu. Jika string sama dengan atau lebih besar dari panjang, maka akan dipangkas sesuai panjangnya.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Pangkas kanan untai karakter terakhir. Jika tidak ditentukan, parameter kedua akan memangkas spasi putih. Selain itu, karakter apa pun yang ditentukan dalam parameter kedua akan dipangkas.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Mendapatkan nilai kedua dari tanggal. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
second(toTimestamp('2009-07-30 12:58:59')) -> 59
seconds
seconds(<value1> : integer) => long
Durasi dalam milidetik untuk jumlah detik.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Mengatur posisi bit dalam bitset ini
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Menghitung hash SHA-1 dari serangkaian kolom berbagai jenis data primitif dan menampilkan string heksa 40 karakter. Ini dapat digunakan untuk menghitung sidik jari untuk baris.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Menghitung hash SHA-2 dari serangkaian kolom berbagai jenis data primitif yang diberikan panjang bit yang hanya dapat berupa nilai 0(256), 224, 256, 384, 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Menghitung nilai sinus.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Menghitung nilai sinus hiperbolik.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Menemukan ukuran jenis array atau peta
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Mendapatkan kecondongan kolom.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, kecondongan kolom akan diperoleh.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Mengekstrak subset larik dari suatu posisi. Posisi berbasis 1. Jika panjang dihilangkan, panjangnya diatur ke default ke akhir string.
slice([10, 20, 30, 40], 1, 2) -> [10, 20]
slice([10, 20, 30, 40], 2) -> [20, 30, 40]
slice([10, 20, 30, 40], 2)[1] -> 20
isNull(slice([10, 20, 30, 40], 2)[0]) -> true
isNull(slice([10, 20, 30, 40], 2)[20]) -> true
slice(['a', 'b', 'c', 'd'], 8) -> []
sort
sort(<value1> : array, <value2> : binaryfunction) => array
Mengurutkan larik menggunakan fungsi predikat yang disediakan. Urutkan untuk memprediksi referensi ke dua elemen berurutan dalam fungsi ekspresi sebagai #item1 dan #item2.
sort([4, 8, 2, 3], compare(#item1, #item2)) -> [2, 3, 4, 8]
sort(['a3', 'b2', 'c1'], iif(right(#item1, 1) >= right(#item2, 1), 1, -1)) -> ['c1', 'b2', 'a3']
soundex
soundex(<value1> : string) => string
Mendapatkan kode soundex
untuk untai.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Memisahkan untai berdasarkan pemisah dan menampilkan larik untai.
split('bojjus,guchus,dumbo', ',') -> ['bojjus', 'guchus', 'dumbo']
split('bojjus,guchus,dumbo', '|') -> ['bojjus,guchus,dumbo']
split('bojjus, guchus, dumbo', ', ') -> ['bojjus', 'guchus', 'dumbo']
split('bojjus, guchus, dumbo', ', ')[1] -> 'bojjus'
isNull(split('bojjus, guchus, dumbo', ', ')[0]) -> true
isNull(split('bojjus, guchus, dumbo', ', ')[20]) -> true
split('bojjusguchusdumbo', ',') -> ['bojjusguchusdumbo']
sqrt
sqrt(<value1> : number) => double
Menghitung akar kuadrat angka.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Memeriksa apakah untai dimulai dengan untai yang disediakan.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Mendapatkan simpangan baku kolom.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, simpangan baku kolom akan diperoleh.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Mendapatkan simpangan baku populasi kolom.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, simpangan baku populasi kolom akan diperoleh.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Mendapatkan contoh simpangan baku kolom.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, contoh simpangan baku kolom akan diperoleh.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Mengurangi hari dari tanggal atau tanda waktu. Sama seperti operator - untuk tanggal.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Mengurangi bulan dari tanggal atau tanda waktu.
subMonths(toDate('2016-09-30'), 1) -> toDate('2016-08-31')
substring
substring(<string to subset> : string, <from 1-based index> : integral, [<number of characters> : integral]) => string
Mengekstrak substring dengan panjang tertentu dari posisi. Posisi berbasis 1. Jika panjang dihilangkan, panjangnya diatur ke default ke akhir karakter.
substring('Cat in the hat', 5, 2) -> 'in'
substring('Cat in the hat', 5, 100) -> 'in the hat'
substring('Cat in the hat', 5) -> 'in the hat'
substring('Cat in the hat', 100, 100) -> ''
substringIndex
substringIndex(<string ke subset><pemisah>substringIndex( : string, : string, <jumlah kejadian pemisah> : integral]) => string
Mengekstrak substring sebelum kejadian pemisah count
. Jika count
positif, semua yang ada di sebelah kiri pembatas akhir (dihitung dari kiri) dikembalikan. Jika count
negatif, semua yang ada di sebelah kanan pembatas akhir (dihitung dari kanan) dikembalikan.
substringIndex('111-222-333', '-', 1) -> '111'
substringIndex('111-222-333', '-', 2) -> '111-222'
substringIndex('111-222-333', '-', -1) -> '333'
substringIndex('111-222-333', '-', -2) -> '222-333'
sum
sum(<value1> : number) => number
Mendapatkan jumlah agregat kolom numerik.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Mendapatkan jumlah agregat nilai berbeda dari kolom numerik.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
Berdasarkan kriteria, jumlah agregat kolom numerik akan diperoleh. Kondisi ini dapat didasarkan pada kolom apa pun.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
Berdasarkan kriteria, jumlah agregat kolom numerik akan diperoleh. Kondisi ini dapat didasarkan pada kolom apa pun.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Menghitung nilai tangen.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Menghitung nilai tangen hiperbolik.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Mengkodekan untai yang diberikan dalam base64. Anda dapat secara opsional melewatkan jenis pengkodean
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Mengonversi setiap numerik/tanggal/tanda waktu/untai ke representasi biner.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
Mengonversi nilai ('t', 'true', 'y', 'ya', '1') ke true dan ('f', 'false', 'n', 'tidak', '0') ke false dan NULL untuk semua nilai lainnya.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Mengonversi numerik atau untai apa pun menjadi nilai byte. Format desimal Java opsional dapat digunakan untuk konversi.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
Mengonversi untai tanggal input menjadi tanggal menggunakan format tanggal input opsional. Lihat kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. Jika format tanggal input dihilangkan, format default-nya adalah yyyy-[M]M-[d]d. Format yang diterima adalah :[ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ].
toDate('2012-8-18') -> toDate('2012-08-18')
toDate('12/18/2012', 'MM/dd/yyyy') -> toDate('2012-12-18')
toDecimal
toDecimal(<value> : any, [<precision> : integral], [<scale> : integral], [<format> : string], [<locale> : string]) => decimal(10,0)
Mengonversi numerik atau untai apa pun menjadi nilai desimal. Jika presisi dan skala tidak ditentukan, maka diubah akan default ke (10,2). Format desimal Java opsional dapat digunakan untuk konversi. Format lokal opsional dalam bentuk bahasa komputer BCP47 seperti en-US, de, zh-CN.
toDecimal(123.45) -> 123.45
toDecimal('123.45', 8, 4) -> 123.4500
toDecimal('$123.45', 8, 4,'$###.00') -> 123.4500
toDecimal('Ç123,45', 10, 2, 'Ç###,##', 'de') -> 123.45
toDouble
toDouble(<value> : any, [<format> : string], [<locale> : string]) => double
Mengonversi numerik atau untai apa pun menjadi nilai ganda. Format desimal Java opsional dapat digunakan untuk konversi. Format lokal opsional dalam bentuk bahasa komputer BCP47 seperti en-US, de, zh-CN.
toDouble(123.45) -> 123.45
toDouble('123.45') -> 123.45
toDouble('$123.45', '$###.00') -> 123.45
toDouble('Ç123,45', 'Ç###,##', 'de') -> 123.45
toFloat
toFloat(<value> : any, [<format> : string], [<locale> : string]) => float
Mengonversi numerik atau untai apa pun menjadi nilai float. Format desimal Java opsional dapat digunakan untuk konversi. Memotong setiap ganda.
toFloat(123.45) -> 123.45f
toFloat('123.45') -> 123.45f
toFloat('$123.45', '$###.00') -> 123.45f
toInteger
toInteger(<value> : any, [<format> : string], [<locale> : string]) => integer
Mengonversi numerik atau untai apa pun menjadi nilai bilangan bulat. Format desimal Java opsional dapat digunakan untuk konversi. Memotong setiap panjang, float, ganda.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Mengonversi numerik atau untai apa pun menjadi nilai panjang. Format desimal Java opsional dapat digunakan untuk konversi. Memotong setiap float, ganda.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Mendapatkan nilai N teratas untuk kolom ini berdasarkan argumen hitungan.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Mengonversi numerik atau untai apa pun menjadi nilai pendek. Format desimal Java opsional dapat digunakan untuk konversi. Memotong nilai bilangan bulat, panjang, float, ganda.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
Mengonversi jenis data primitif menjadi untai. Untuk angka dan tanggal, format dapat ditentukan. Jika default sistem yang tidak ditentukan dipilih, format desimal java akan digunakan untuk angka. Lihat SimpleDateFormat Java untuk semua kemungkinan format tanggal; format default-nya adalah yyyy-MM-dd. Untuk tanggal atau stempel waktu lokal dapat ditentukan secara opsional.
toString(10) -> '10'
toString('engineer') -> 'engineer'
toString(123456.789, '##,###.##') -> '123,456.79'
toString(123.78, '000000.000') -> '000123.780'
toString(12345, '##0.#####E0') -> '12.345E3'
toString(toDate('2018-12-31')) -> '2018-12-31'
isNull(toString(toDate('2018-12-31', 'MM/dd/yy'))) -> true
toString(4 == 20) -> 'false'
toString(toDate('12/31/18', 'MM/dd/yy', 'es-ES'), 'MM/dd/yy', 'de-DE')
toTimestamp
toTimestamp(<string> : any, [<timestamp format> : string], [<time zone> : string]) => timestamp
Mengonversi untai menjadi tanda waktu yang diberi format tanda waktu opsional. Jika tanda waktu dihilangkan, pola default yyyy-[M]M-[d]d hh:mm:ss[.f...] akan digunakan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Tanda waktu mendukung hingga akurasi milidetik dengan nilai 999. Lihat kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
toTimestamp('2016-12-31 00:12:00') -> toTimestamp('2016-12-31 00:12:00')
toTimestamp('2016-12-31T00:12:00', 'yyyy-MM-dd\'T\'HH:mm:ss', 'PST') -> toTimestamp('2016-12-31 00:12:00')
toTimestamp('12/31/2016T00:12:00', 'MM/dd/yyyy\'T\'HH:mm:ss') -> toTimestamp('2016-12-31 00:12:00')
millisecond(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
toUTC
toUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Mengonversi tanda waktu menjadi UTC. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Menerapkan mode default ke zona waktu saat ini. Lihat kelas SimpleDateFormat
Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
toUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
toUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true
translate
translate(<string to translate> : string, <lookup characters> : string, <replace characters> : string) => string
Ganti sekumpulan karakter dengan sekumpulan karakter lainnya dalam untai. Karakter memiliki penggantian 1 hingga 1.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Memangkas untai karakter depan dan belakang. Jika tidak ditentukan, parameter kedua akan memangkas spasi putih. Selain itu, karakter apa pun yang ditentukan dalam parameter kedua akan dipangkas.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Selalu menampilkan nilai true. Gunakan fungsi syntax(true())
jika ada kolom bernama 'null'.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Cocok dengan jenis kolom. Hanya dapat digunakan dalam ekspresi pola. Angka cocok dengan kecocokan pendek, bilangan bulat, panjang, ganda, mengambang atau desimal, kecocokan integral pendek, bilangan bulat, panjang, pencocokan pecahan ganda, float, desimal dan tanggalwaktu cocok tanggal atau jenis tanda waktu.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Tidak mengabaikan untai sesuai dengan format. Nilai literal untuk format yang dapat diterima meliputi 'json', 'xml', 'ecmascript', 'html', 'java'.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Membuka array ke dalam satu set baris dan mengulangi nilai untuk kolom yang tersisa.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
Membatalkan heksa nilai biner dari representasi untainya. Hal ini dapat digunakan dengan sha2, md5 untuk mengubah dari string ke representasi biner
unhex('1fadbe') -> toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])
unhex(md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))) -> toBinary([toByte(0x4c),toByte(0xe8),toByte(0xa8),toByte(0x80),toByte(0xbd),toByte(0x62),toByte(0x1a),toByte(0x1f),toByte(0xfa),toByte(0xd0),toByte(0xbc),toByte(0xa9),toByte(0x05),toByte(0xe1),toByte(0xbc),toByte(0x5a)])
union
union(<value1>: array, <value2> : array) => array
Mengembalikan satu set item yang berbeda dari 2 larik.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Membuat huruf besar pada untai.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Menampilkan UUID yang dihasilkan.
uuid()
V
variance
variance(<value1> : number) => double
Mendapatkan varian kolom.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, varian kolom akan diperoleh.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Mendapatkan varian populasi kolom.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, varian populasi kolom akan diperoleh.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Mendapatkan varian kolom yang tidak bias.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
Berdasarkan kriteria, varian kolom yang tidak bias akan diperoleh.
varianceSampleIf(region == 'West', sales)
W
weekOfYear
weekOfYear(<value1> : datetime) => integer
Mendapatkan minggu dalam setahun yang diberikan tanggal.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Durasi dalam milidetik untuk jumlah minggu.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Operator logika XOR. Sama seperti operator ^.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
Mendapatkan nilai tahun dari tanggal.
year(toDate('2012-8-8')) -> 2012
Konten terkait
- Daftar seluruh fungsi gabungan.
- Daftar semua fungsi array.
- Daftar semua fungsi pencarian yang disimpan.
- Daftar semua fungsi konversi.
- Daftar semua fungsi tanggal dan waktu.
- Daftar semua fungsi ekspresi.
- Daftar semua fungsi peta.
- Daftar semua metafungsi.
- Daftar semua fungsi window.
- Pelajari cara menggunakan Penyusun Ekspresi.