Eşleme veri akışlarında veri dönüştürme ifadesi kullanımı
UYGULANANLAR: Azure Data Factory
Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Veri akışları hem Azure Data Factory'de hem de Azure Synapse Pipelines'da kullanılabilir. Bu makale, eşleme veri akışları için geçerlidir. Dönüştürmeler hakkında yeniyseniz lütfen eşleme veri akışı kullanarak verileri dönüştürme başlıklı giriş makalesine bakın.
Aşağıdaki makalelerde, eşleme veri akışlarında Azure Data Factory ve Azure Synapse Analytics tarafından desteklenen tüm ifadelerin ve işlevlerin kullanımıyla ilgili ayrıntılar sağlanır. Desteklenen her işlev türünün özetleri için aşağıdaki makalelere başvurun:
- Toplama işlevleri
- Dizi işlevleri
- Önbelleğe alınmış arama işlevleri
- Dönüştürme işlevleri
- Tarih ve saat işlevleri
- İfade işlevleri
- Eşleme işlevleri
- Meta İşlevler
- Pencere işlevleri
Tüm işlevlerin alfabetik listesi
Aşağıda eşleme veri akışlarında kullanılabilen tüm işlevlerin alfabetik bir listesi yer alır.
A
abs
abs(<value1> : number) => number
Bir sayının mutlak değeri.
abs(-20) -> 20
abs(10) -> 10
acos
acos(<value1> : number) => double
Kosinüs ters değeri hesaplar.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Dize veya sayı çifti ekler. Birçok güne tarih ekler. Zaman damgasına süre ekler. Benzer türde bir diziyi diğerine ekler. + işleciyle aynı.
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
Tarihe veya zaman damgasına gün ekleme. Tarih için + işleciyle aynı.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Tarihe veya zaman damgasına aylar ekleyin. İsteğe bağlı olarak bir saat dilimi geçirebilirsiniz.
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
Mantıksal AND işleci. &Aynı
and(true, false) -> false
true && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Bir sütun için ayrı değerlerin yaklaşık toplam sayısını alır. İsteğe bağlı ikinci parametre tahmin hatasını denetlemektir.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Bir öğe dizisi oluşturur. Tüm öğeler aynı türde olmalıdır. Hiçbir öğe belirtilmezse, boş bir dize dizisi varsayılandır. [] oluşturma işleciyle aynı.
array('Seattle', 'Washington')
['Seattle', 'Washington']
['Seattle', 'Washington'][1]
'Washington'
ascii
ascii(<Input> : string) => number
Giriş karakterinin sayısal değerini döndürür. Giriş dizesinde birden fazla karakter varsa, ilk karakterin sayısal değeri döndürülür
ascii('A') -> 65
ascii('a') -> 97
asin
asin(<value1> : number) => double
Ters sinüs değerini hesaplar.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Anahtar olarak onay kimliğine sahip satır için tüm hata iletilerinin bir haritasını döndürür.
Örnekler
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
Anahtar/değerlerin eşlemini oluşturur. Tüm anahtarlar ve değerler aynı türde olmalıdır. Hiçbir öğe belirtilmezse, dizenin dize türüyle eşlemini varsayılan olarak belirler. Oluşturma işleciyle [ -> ]
aynı. Anahtarlar ve değerler birbiriyle değiştirilmelidir.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Dizi dizinindeki öğesini bulur. Dizin 1 tabanlıdır. Sınır dışı dizin null değerle sonuç verir. Bir anahtar verilen eşlemedeki bir değeri bulur. Anahtar bulunamazsa null döndürür.
at(['apples', 'pears'], 1) => 'apples'
at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Ters tanjant değerini hesaplar.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Bir düzlemin pozitif x ekseni ile koordinatlar tarafından verilen nokta arasındaki radyan cinsinden açıyı verir.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Bir sütunun değerlerinin ortalamasını alır.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
Ölçütlere göre bir sütunun değerlerinin ortalamasını alır.
avgIf(region == 'West', sales)
K
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
İlk değerin diğer iki değer arasında (dahil) olup olmadığını denetler. Sayısal, dize ve tarih saat değerleri karşılaştırılabilir
between(10, 5, 24)
true
between(currentDate(), currentDate() + 10, currentDate() + 20)
false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Tam sayı türleri arasında Bit Düzeyinde Ve işleci. & işleciyle aynı
bitwiseAnd(0xf4, 0xef)
0xe4
(0xf4 & 0xef)
0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Tam sayı türleri arasında Bit Düzeyinde Or işleci. | ile aynı operatör
bitwiseOr(0xf4, 0xef)
0xff
(0xf4 | 0xef)
0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Tam sayı türleri arasında Bit Düzeyinde Or işleci. | ile aynı operatör
bitwiseXor(0xf4, 0xef)
0x1b
(0xf4 ^ 0xef)
0x1b
(true ^ false)
true
(true ^ true)
false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Bit uzunluğu verilen ve 8 ile 512 arasında yalnızca 8'in katları olabilecek değişen ilkel veri türlerinden oluşan sütun kümesinin Blake2 özetini hesaplar. Bir satır için parmak izi hesaplamak için kullanılabilir
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Bit uzunluğu verilen ve 8 ile 512 arasında yalnızca 8'in katları olabilecek değişen ilkel veri türlerinden oluşan sütun kümesinin Blake2 özetini hesaplar. Bir satır için parmak izi hesaplamak için kullanılabilir
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Bir yapı veya yapı dizisi içinde bir alt öğe bulun. Birden çok eşleşme varsa, ilk eşleşme döndürülür. Eşleşme yoksa NULL değer döndürür. Döndürülen değerin tür dönüştürme eylemlerinden biri (? tarih, ? dize ...) tarafından dönüştürülmesi gerekir. Yalnızca tasarım zamanında bilinen sütun adlarını adlarıyla adresleyin. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
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
Akışta ada göre bir sütun değeri seçer. İkinci bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz. Birden çok eşleşme varsa, ilk eşleşme döndürülür. Eşleşme yoksa NULL değer döndürür. Döndürülen değerin tür dönüştürme işlevlerinden biri tarafından dönüştürülmesi gerekir (TO_DATE, TO_STRING ...). Yalnızca tasarım zamanında bilinen sütun adlarını adlarıyla adresleyin. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
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
Akışta ada göre bir sütun dizisi seçin. İkinci bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz. Birden çok eşleşme varsa, ilk eşleşme döndürülür. Bir sütun için eşleşme yoksa, çıkışın tamamı NULL değerdir. Döndürülen değer bir tür dönüştürme işlevi (toDate, toString, ...) gerektirir. Yalnızca tasarım zamanında bilinen sütun adlarını adlarıyla adresleyin. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
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
Kaynak akışta ada göre bir sütun değeri seçer. İkinci bağımsız değişken, kaynak akış adıdır. Birden çok eşleşme varsa, ilk eşleşme döndürülür. Eşleşme yoksa NULL değer döndürür. Döndürülen değerin tür dönüştürme işlevlerinden biri tarafından dönüştürülmesi gerekir (TO_DATE, TO_STRING ...). Yalnızca tasarım zamanında bilinen sütun adlarını adlarıyla adresleyin. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Akışta ada göre bir sütun dizisi seçer. İkinci bağımsız değişken, kaynağı olan akıştır. Birden çok eşleşme varsa, ilk eşleşme döndürülür. Eşleşme yoksa NULL değer döndürür. Döndürülen değerin tür dönüştürme işlevlerinden biri tarafından dönüştürülmesi gerekir (TO_DATE, TO_STRING ...). Yalnızca tasarım zamanında bilinen sütun adlarını adlarıyla adresleyin. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Akışta ada göre hiyerarşik bir yol bulur. İkinci bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz. Böyle bir yol bulunmazsa null döndürür. Tasarım zamanında bilinen sütun adları/yolları yalnızca adlarıyla veya noktalı notasyon yollarıyla ele alınmalıdır. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Bir sütun değerini akıştaki göreli konumuna (1 tabanlı) göre seçer. Konum sınırların dışındaysa NULL değeri döndürür. Döndürülen değerin tür dönüştürme işlevlerinden biri tarafından dönüştürülmesi gerekir (TO_DATE, TO_STRING ...). Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
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
Değişen koşullara bağlı olarak bir değer veya diğerini uygular. Giriş sayısı eşitse, diğeri son koşul için varsayılan olarak NULL olarak ayarlanır.
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
Bir sayının küp kökünü hesaplar.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Sayıdan küçük olmayan en küçük tamsayıyı döndürür.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Giriş numarasıyla temsil edilen ascii karakterini döndürür. Sayı 256'dan büyükse, sonuç char(sayı % 256) ile eşdeğerdir
char(65) -> 'A'
char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Bir giriş kümesinden ilk null olmayan değeri döndürür. Tüm girişler aynı türde olmalıdır.
coalesce(10, 20) -> 10
coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Toplanan gruptaki ifadenin tüm değerlerini bir dizide toplar. Bu işlem sırasında yapılar toplanabilir ve alternatif yapılara dönüştürülebilir. Öğe sayısı, bu gruptaki satır sayısına eşittir ve null değerler içerebilir. Toplanan öğelerin sayısı az olmalıdır.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Toplanan gruptaki ifadenin tüm değerlerini benzersiz bir dizide toplar. Bu işlem sırasında yapılar toplanabilir ve alternatif yapılara dönüştürülebilir. Öğe sayısı, bu gruptaki satır sayısına eşittir ve null değerler içerebilir. Toplanan öğelerin sayısı az olmalıdır.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(<value1>
columnNames( : string, i><value1> : boolean) = dizi>
Bir akış için tüm çıkış sütunlarının adlarını alır. İlk bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz. İkinci bağımsız değişken de isteğe bağlıdır ve varsayılan olarak false değeri kullanılır. İkinci bağımsız değişkeni olarak true()
ayarlarsanız Data Factory yalnızca şema kayarak sürüklenen sütunları döndürür.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Bir akış için tüm çıkış sütunlarının değerlerini alır. İkinci bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Aynı türdeki iki değeri karşılaştırır. Değer1 < değer2 ise negatif tamsayı, değer1 == değer2 ise 0, değer1 > değer2 ise pozitif değer döndürür.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Değişken sayıda dizeyi birleştirir. Dizeleri olan + işleciyle aynıdır.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Değişken sayıda dizeyi bir ayırıcı ile birleştirir. İlk parametre ayırıcıdır.
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
Sağlanan dizideki herhangi bir öğe sağlanan koşulda true olarak değerlendirilirse true döndürür. contains, koşul işlevindeki bir öğeye #item olarak başvuru bekler.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Kosinüs değerini hesaplar.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Bir değerin hiperbolik kosinüsünü hesaplar.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Değerlerin toplam sayısını alır. bir veya daha fazla isteğe bağlı sütun belirtilirse, sayıdaki NULL değerleri yoksayar.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Nulllar dahil olmak üzere değerlerin toplam sayısını alır.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Bir sütun kümesinin ayrı değerlerinin toplam sayısını alır.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Null değerleri de dahil olmak üzere bir sütun kümesinin ayrı değerlerinin toplam sayısını alır.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
Ölçütlere göre değerlerin toplam sayısını alır. İsteğe bağlı sütun belirtilirse, sayıdaki NULL değerlerini yoksayar.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
İki sütun arasındaki popülasyon kovaryansını alır.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Ölçütlere göre iki sütunun popülasyon kovaryansını alır.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
İki sütunun örnek kovaryansını alır.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Ölçütlere göre iki sütunun örnek kovaryansını alır.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Bit uzunluğu verilen ve yalnızca 0(256), 224, 256, 384, 512 değerlerinden oluşan değişen temel veri türlerinden oluşan sütun kümesinin CRC32 karması hesaplanır. Bir satır için parmak izi hesaplamak için kullanılabilir.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
CumeDist işlevi, bir değerin bölümdeki tüm değerlere göre konumunu hesaplar. Sonuç, bölümün sıralanmasında geçerli satırdan önceki veya buna eşit olan satırların, pencere bölümündeki toplam satır sayısına bölünmesidir. Sıralamadaki tüm bağlama değerleri aynı konuma değerlendirilir.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Bu işin çalışmaya başladığı geçerli tarihi alır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Veri fabrikasının veri merkezinin/bölgesinin yerel saat dilimi varsayılan olarak kullanılır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
İş yerel saat dilimiyle çalışmaya başladığında geçerli zaman damgasını alır.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Geçerli zaman damgasını UTC olarak alır. Geçerli saatinizin küme saat diliminizden farklı bir saat diliminde yorumlanmasını istiyorsanız, 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde isteğe bağlı bir saat dilimi geçirebilirsiniz. Varsayılan olarak geçerli saat dilimini kullanır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. UTC saatini farklı bir saat dilimine dönüştürmek için kullanın 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
Bir tarih verilen ayın gününü alır.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Bir tarih verilen haftanın gününü alır. 1 - Pazar, 2 - Pazartesi ..., 7 - Cumartesi.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Bir tarih verilen yılın gününü alır.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Gün sayısı için milisaniye cinsinden süre.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Kodlanmış giriş verilerini verilen karakter kümesine göre bir dizeye kodlar. 'US-ASCII', 'ISO-8859-1', 'UTF-8' (varsayılan), 'UTF-16BE', 'UTF-16LE', 'UTF-16LE', 'UTF-16'
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Radyanları dereceye dönüştürür.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Pencerenin sıralama ölçütü yan tümcesinde belirtilen değer grubundaki bir değerin derecesini hesaplar. Sonuç, bölümün sırasına göre geçerli satırdan önceki veya buna eşit olan satır sayısının bir artı değeridir. Değerler dizide boşluklar oluşturmaz. Yoğun Sıralama, veriler sıralanmadığında bile çalışır ve değerlerde değişiklik arar.
denseRank()
distinct
distinct(<value1> : array) => array
Diziden ayrı bir öğe kümesi döndürür.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Sayı çiftini böler. İşleçle /
aynı.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Dizenin solundan en fazla sayıda karakteri kaldırır. İstenen bırakma, dizenin uzunluğunu aşarsa boş bir dize döndürülür.
- dropLeft('bojjus', 2) => 'jjus'
- dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Dizenin sağından olabildiğince çok karakter kaldırır. İstenen bırakma, dizenin uzunluğunu aşarsa boş bir dize döndürülür.
- dropRight('bojjus', 2) => 'bojj'
- dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Giriş dizesi verilerini bir karakter kümesine göre ikili olarak kodlar. 'US-ASCII', 'ISO-8859-1', 'UTF-8' (varsayılan), 'UTF-16BE', 'UTF-16LE', 'UTF-16LE', 'UTF-16'
encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))
endsWith
endsWith(<string> : string, <substring to check> : string) => boolean
Dizenin sağlanan dizeyle bitip bitmediğini denetler.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Karşılaştırma eşittir işleci. == işleciyle aynı.
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
Karşılaştırma, büyük/küçük harf yoksayma işlecine eşittir. => işleciyle <aynıdır.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Biçime göre bir dizeden kaçar. Kabul edilebilir biçim için değişmez değerler :'json', 'xml', 'ecmascript', 'html', 'java'.
except
except(<value1> : array, <value2> : array) => array
Bir diziden başka bir yinelenen öğe bırakmadan oluşan bir fark kümesi döndürür.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Dizeden bir ifade elde edilir. Bu, bu ifadeyi nonliteral biçimde yazmakla aynıdır. Bu, parametreleri dize gösterimi olarak geçirmek için kullanılabilir.
- expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Bir sayının faktöriyelini hesaplar.
factorial(5) -> 120
false
false() => boolean
Her zaman yanlış bir değer döndürür. 'false' adlı bir sütun varsa işlevini syntax(false())
kullanın.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Sağlanan koşula uymayen öğeleri dizinin dışına filtreler. Filter, koşul işlevindeki bir öğeye #item olarak başvuru bekler.
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
Koşulla eşleşen bir dizideki ilk öğeyi bulun. Dizideki öğeyi #item olarak adresleyebileceğiniz bir filtre işlevi alır. İç içe yerleştirilmiş haritalar için #item_n(#item_1, #item_2...) gösterimini kullanarak üst eşlemelere başvurabilirsiniz.
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
Sütun grubunun ilk değerini alır. ignoreNulls ikinci parametresi atlanırsa Data Factory false kabul eder.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Diziyi veya dizileri tek bir dizi halinde düzleştirir. Atomik öğe dizileri değiştirilmeden döndürülür. Son bağımsız değişken isteğe bağlıdır ve özyinelemeli olarak birden fazla düzeyde derin düzleştirme için varsayılan olarak false olarak ayarlanır.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Sayıdan büyük olmayan en büyük tamsayıyı döndürür.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Verilen base64 kodlanmış dizenin kodunu çözer. İsteğe bağlı olarak kodlama türünü geçirebilirsiniz.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
UTC'den zaman damgasına dönüştürür. İsteğe bağlı olarak saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Varsayılan olarak geçerli saat dilimini kullanır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Karşılaştırma büyüktür işleci. İşleçle > aynı.
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
Karşılaştırma büyüktür veya eşittir işleci. = işleciyle >aynıdır.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Null değerleri atlayan giriş olarak değer listesi arasındaki en büyük değeri döndürür. Tüm girişler null ise null döndürür.
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
Akıştaki bir sütun değerini ada göre denetler. İkinci bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz. Yalnızca tasarım zamanında bilinen sütun adlarını adlarıyla adresleyin. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Sağlanan kimliği olan varlığın hata olarak işaretlenip işaretlenmediğini denetler.
Örnekler
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Akışta ada göre belirli bir hiyerarşik yol olup olmadığını denetler. İkinci bağımsız değişken olarak isteğe bağlı bir akış adı geçirebilirsiniz. Tasarım zamanında bilinen sütun adları/yolları yalnızca adlarıyla veya noktalı notasyon yollarıyla ele alınmalıdır. Hesaplanan girişler desteklenmez, ancak parametre değiştirmelerini kullanabilirsiniz.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
İkili değerin onaltılık dize gösterimini döndürür
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Zaman damgasının saat değerini alır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Yerel saat dilimi varsayılan olarak kullanılır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Saat sayısı için milisaniye cinsinden süre.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Bir koşula bağlı olarak bir değer veya diğerini uygular. Diğer belirtilmemişse, değer NULL olarak kabul edilir. Her iki değer de uyumlu olmalıdır (sayısal, dize...).
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
İki veya daha fazla giriş verilip ilk null olmayan öğeyi döndürür. Bu işlev birleşime eşdeğerdir.
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
Bir öğenin dizide olup olmadığını denetler.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Her sözcüğün ilk harfini büyük harfe dönüştürür. Sözcükler boşlukla ayrılmış olarak tanımlanır.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Bir dize içindeki alt dizenin konumunu (1 tabanlı) bulur. 0, bulunamazsa döndürülür.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
İki diziden ayrı öğelerden oluşan bir kesişim kümesi döndürür.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Bu bit kümesinde bir bit konumunun ayarlandığını denetler
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Dize değerinin kurallarına göre boole değeri olup olmadığını denetler toBoolean()
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Dize değerinin kurallarına göre isteğe bağlı bir biçim verilen bir bayt değeri olup olmadığını denetler toByte()
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
İsteğe bağlı bir giriş tarihi biçimi kullanarak giriş tarihi dizesinin tarih olup olmadığını denetler. Kullanılabilir biçimler için Java'nın SimpleDateFormat bölümüne bakın. Giriş tarihi biçimi atlanırsa, varsayılan biçim olur yyyy-[M]M-[d]d
. Kabul edilen biçimler şunlardır: [ 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
Dize değerinin, kurallarına göre isteğe bağlı bir biçim verilen ondalık değer olup olmadığını denetler toDecimal()
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Satırın silme için işaretlenip işaretlenmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Bir sütunun veya sütun kümesinin ayrı olup olmadığını bulur. Null değerini ayrı bir değer olarak saymıyor
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Dize değerinin, kurallarına göre isteğe bağlı bir biçim verilen çift değer olup olmadığını denetler toDouble()
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Satırın hata olarak işaretlenip işaretlenmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Dize değerinin, kurallarına göre isteğe bağlı bir biçim verildiğinde float değeri olup olmadığını denetler toFloat()
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Satırın yoksayılmak üzere işaretlenip işaretlenmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Satırın ekleme için işaretlenip işaretlenmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Dize değerinin, kurallarına göre isteğe bağlı bir biçim verilen bir tamsayı değeri olup olmadığını denetler toInteger()
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Dize değerinin, kurallarına göre isteğe bağlı bir biçim verildiğinde uzun bir değer olup olmadığını denetler toLong()
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Arama sırasında satırın eşleşip eşleşmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Bunun bir sayı olup olmadığını denetleyin.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Değerin NULL olup olmadığını denetler.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Dize değerinin kurallarına göre isteğe bağlı bir biçim verildiğinde kısa bir değer olup olmadığını denetler toShort()
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
İsteğe bağlı bir giriş zaman damgası biçimi kullanarak giriş tarihi dizesinin bir zaman damgası olup olmadığını denetler. Kullanılabilir biçimler için Java'nın SimpleDateFormat bölümüne bakın. Zaman damgası atlanırsa varsayılan desen yyyy-[M]M-[d]d hh:mm:ss[.f...]
kullanılır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Zaman damgası, 999 değeriyle milisaniyeye kadar doğruluğu destekler. Kullanılabilir biçimler için Java'nın SimpleDateFormat dosyasına bakın.
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
Satırın güncelleştirme için işaretlenip işaretlenmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Satırın ekleme için işaretlenip işaretlenmediğini denetler. Birden fazla giriş akışı alan dönüştürmeler için akışın (1 tabanlı) dizinini geçirebilirsiniz. Akış dizini 1 veya 2, varsayılan değer ise 1 olmalıdır.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
İki dize arasındaki JaroWinkler mesafesini alır.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Anahtar/değerlerin eşlemini oluşturur. İlk parametre bir anahtar dizisi, ikincisi ise değer dizisidir. Her iki dizi de eşit uzunlukta olmalıdır.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Bir sütunun basıklıklarını alır.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun basıklıklarını alır.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Geçerli satırdan önce değerlendirilen ilk parametrenin n satırının değerini alır. İkinci parametre, geriye bakacak satır sayısıdır ve varsayılan değer 1'dir. Çok fazla satır yoksa, varsayılan değer belirtilmediği sürece null değeri döndürülür.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Sütun grubunun son değerini alır. ignoreNulls ikinci parametresi atlanırsa false olduğu varsayılır.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Verilen tarihin ayın son tarihini alır.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
Geçerli satırdan sonra değerlendirilen ilk parametrenin n satırının değerini alır. İkinci parametre, ileriye bakacak satır sayısıdır ve varsayılan değer 1'dir. Çok fazla satır yoksa, varsayılan değer belirtilmediği sürece null değeri döndürülür.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Karşılaştırma küçük veya eşittir işleci. = işleciyle <aynıdır.
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
Dizin 1'de karakter sayısıyla bir alt dize başlangıcı ayıklar. SUBSTRING(str, 1, n) ile aynıdır.
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Dizenin uzunluğunu döndürür.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Karşılaştırma az işleci. İşleçle < aynı.
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
Karşılaştırma küçük veya eşittir işleci. = işleciyle <aynıdır.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
İki dize arasındaki levenshtein mesafesini alır.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
Desen, tam anlamıyla eşleşen bir dizedir. Özel durumlar şu özel simgelerdir: _ girişteki herhangi bir karakterle eşleşir (benzer şekilde). posix
Normal ifadelerde) % değeri girişteki sıfır veya daha fazla karakterle eşleşir (normal ifadelerde olduğu posix
gibi.*
).
Kaçış karakteri : ''. Bir kaçış karakteri özel bir simgeden veya başka bir kaçış karakterinden önce gelirse, aşağıdaki karakter kelimenin tam anlamıyla eşleştirilir. Başka bir karakterden kaçmak geçersiz.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Belirli bir konumdan başlayan bir dize içindeki alt dizenin konumunu (1 tabanlı) bulur. Konum atlanırsa, dizenin başından itibaren dikkate alınır. 0, bulunamazsa döndürülür.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Günlük değerini hesaplar. İsteğe bağlı bir taban, kullanılıyorsa başka bir Euler numarası sağlanabilir.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Günlük değerini 10 tabana göre hesaplar.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Önbelleğe alınan havuzdaki anahtarlarla eşleşen belirtilen anahtarları kullanarak önbelleğe alınan havuzdaki ilk satırı arar.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Dizeyi küçük harfle küçük harfe ekler.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Belirtilen uzunlukta olana kadar sağlanan doldurma tarafından dizeyi sol tuşa koyar. Dize uzunluğuna eşit veya ondan büyükse, uzunluğa kırpılır.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Sol, baştaki karakterlerden oluşan bir dizeyi kırpıyor. İkinci parametre belirtilmemişse, boşluğu kırpar. Aksi halde, ikinci parametrede belirtilen herhangi bir karakteri kırpıyor.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Sağlanan ifadeyi kullanarak dizinin her öğesini yeni bir öğeyle eşler. Map, ifade işlevindeki bir öğeye #item olarak başvuru bekler.
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
Anahtarları yeni değerlerle ilişkilendirerek haritayı dönüştürür. Bir dizi döndürür. Öğeyi #key ve geçerli değeri #value olarak adresleyebileceğiniz bir eşleme işlevi alır.
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
Bir diziyi aynı veya daha küçük uzunlukta başka bir diziye koşullu olarak eşler. Değerler, structTypes da dahil olmak üzere herhangi bir veri türüne ait olabilir. Dizideki öğeyi #item ve geçerli dizini #index olarak adresleyebileceğiniz bir eşleme işlevi alır. İç içe yerleştirilmiş haritalar için gösterimi kullanarak üst haritalara #item_[n](#item_1, #index_1...)
başvurabilirsiniz.
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
Sağlanan ifadeyi kullanarak dizinin her öğesini yeni bir öğeyle eşler. Map, ifade işlevindeki bir öğeye #item ve öğe dizinine #index olarak başvuru bekler.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Bu uzunlukta bir dizi oluşturmak için 1'den uzunluğa kadar döngüler. Dizideki dizini #index olarak adresleyebileceğiniz bir eşleme işlevi alır. İç içe yerleştirilmiş haritalar için #index_n(#index_1, #index_2...) gösterimini kullanarak üst haritalara başvurabilirsiniz.
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Bir sütunun en büyük değerini alır.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
Ölçütlere göre bir sütunun en yüksek değerini alır.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Değişen ilkel veri türlerinden oluşan sütun kümesinin MD5 özetini hesaplar ve 32 karakterlik onaltılık bir dize döndürür. Bir satır için parmak izi hesaplamak için kullanılabilir.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Bir sütunun değerlerinin ortalamasını alır. AVG ile aynı.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
Ölçütlere göre bir sütunun değerlerinin ortalamasını alır. avgIf ile aynı.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Bir tarihin milisaniye değerini alır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Yerel saat dilimi varsayılan olarak kullanılır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Milisaniye sayısı için milisaniye cinsinden süre.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Bir sütunun en düşük değerini alır.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
Ölçütlere göre bir sütunun en düşük değerini alır.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Sayıları çıkarır. Bir tarihten gün sayısını çıkarın. Bir zaman damgasından süreyi çıkarın. Milisaniye cinsinden fark elde etmek için iki zaman damgası çıkarın. - işleciyle aynı.
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
Zaman damgasının dakika değerini alır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Yerel saat dilimi varsayılan olarak kullanılır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Dakika sayısı için milisaniye cinsinden süre.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Önbelleğe alınan havuzdaki anahtarlarla eşleşen belirtilen anahtarları kullanarak önbelleğe alınan havuzdaki tüm eşleşen satırları arar.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Sayı çifti modulus. % işleciyle aynı.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Tarih veya zaman damgasının ay değerini alır.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
İki tarih arasındaki ay sayısını alır. Hesaplamayı yuvarlayabilirsiniz. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Yerel saat dilimi varsayılan olarak kullanılır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Sayı çiftini çarpar. * işleciyle aynı.
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
Bir sayıyı olumsuzlar. Pozitif sayıları negatife ve tersine çevirir.
negate(13) -> -13
nextSequence
nextSequence() => long
Sonraki benzersiz diziyi döndürür. Sayı yalnızca bir bölüm içinde ardışıktır ve partitionId ön ekini alır.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Dize değerini aksanlı unicode karakterleri ayırmak için normalleştirir.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Mantıksal olumsuzlama işleci.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Karşılaştırma eşittir işleci değildir. != işleciyle aynı.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
işlevi, NTile
her pencere bölümünün n
satırlarını en fazla 1 ile arasında değişen demetlere n
böler. Demet değerleri en fazla 1'e göre farklılık gösterir. Bölümdeki satır sayısı demet sayısına eşit olarak bölünmezse, kalan değerler ilk demetle başlayarak demet başına bir tane dağıtılır. NTile
işlevi, dörttebirlik, deciles ve diğer yaygın özet istatistiklerinin tertiles
hesaplanması için kullanışlıdır. İşlev başlatma sırasında iki değişken hesaplar: Normal demetin boyutuna fazladan bir satır eklenir. Her iki değişken de geçerli bölümün boyutuna bağlıdır. Hesaplama işlemi sırasında işlev geçerli satır numarasını, geçerli demet numarasını ve demetin değişeceği satır numarasını (bucketThreshold) izler. Geçerli satır sayısı demet eşiğine ulaştığında, demet değeri bir artar ve eşik demet boyutuna (geçerli demet doldurulursa bir ek değer) artar.
nTile()
nTile(numOfBuckets)
null
null() => null
NULL değeri döndürür. 'null' adlı bir sütun varsa işlevini syntax(null())
kullanın. Kullanan herhangi bir işlem NULL ile sonuçlanır.
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
Mantıksal VEYA operatörüdür. || ile aynı.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Sütunların oluşturulduğu kaynak akışı için tüm çıkış sütunlarını alır. Başka bir işlev içine alınmalıdır.
array(toString(originColumns('source1')))
output
output() => any
Önbellek havuzu sonuçlarının ilk satırını döndürür
cacheSink#output()
outputs
output() => any
Önbellek havuzu sonuçlarının çıkış satırı kümesinin tamamını döndürür
cacheSink#outputs()
P
partitionId
partitionId() => integer
Giriş satırının içinde olduğu geçerli bölüm kimliğini döndürür.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Pozitif Sayı çifti modulus.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Bir sayıyı diğerinin gücüne yükseltir.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Dereceleri radyana dönüştürür
radians(180) => 3.141592653589793
random
random(<value1> : integral) => long
Bölüm içinde isteğe bağlı bir tohum verilen rastgele bir sayı döndürür. Tohum sabit bir değer olmalıdır ve rastgele değerler üretmek için partitionId ile birlikte kullanılır
random(1) == 1 -> false
rank
rank() => integer
Pencerenin sıralama ölçütü yan tümcesinde belirtilen değer grubundaki bir değerin derecesini hesaplar. Sonuç, bölümün sırasına göre geçerli satırdan önceki veya buna eşit olan satır sayısının bir artı değeridir. Değerler, dizide boşluklar oluşturur. Sıralama, veriler sıralanmadığında bile çalışır ve değerlerde değişiklik arar.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Anahtarları yeni değerlerle ilişkilendirerek haritayı dönüştürür. Öğeyi #key ve geçerli değeri #value olarak adresleyebileceğiniz bir eşleme işlevi alır.
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
Dizideki öğeleri biriktirir. Reduce, ilk ifade işlevinde #acc ve #item olarak bir akümülatöre ve bir öğeye başvuru bekler ve sonuçta elde edilen değerin ikinci ifade işlevinde #result olarak kullanılmasını bekler.
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
Belirli bir regex deseni için eşleşen bir alt dizeyi ayıklayın. Son parametre eşleşme grubunu tanımlar ve atlanırsa varsayılan olarak 1 olarak ayarlanır. Bir dizeyi kaçış olmadan eşleştirmek için (geri tırnak) kullanın <regex>
. Dizin 0 tüm eşleşmeleri döndürür. Eşleşme grupları olmadan dizin 1 ve üzeri herhangi bir sonuç döndürmez.
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
Dizenin verilen regex deseni ile eşleşip eşleşmediğini denetler. Bir dizeyi kaçış olmadan eşleştirmek için (geri tırnak) kullanın <regex>
.
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
Bir regex deseninin tüm oluşumlarını verilen dizedeki başka bir alt dizeyle değiştirin. Bir dizeyi kaçış yapmadan eşleştirmek için Kullanın <regex>
(geri tırnak).
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
Bir dizeyi regex'e göre sınırlayıcıya göre böler ve bir dize dizisi döndürür.
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
Bir alt dizenin tüm oluşumlarını verilen dizedeki başka bir alt dizeyle değiştirin. Son parametre atlanırsa, varsayılan olarak boş dize olur.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Dizeyi tersine çevirir.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Sağdan karakter sayısına sahip bir alt dize ayıklar. SUBSTRING(str, LENGTH(str) - n, n ile aynıdır.
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Dizenin verilen regex deseni ile eşleşip eşleşmediğini denetler.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
İsteğe bağlı ölçek ve isteğe bağlı yuvarlama modu verilen bir sayıyı yuvarlar. Ölçek atlanırsa varsayılan olarak 0 olur. Mod atlanırsa varsayılan olarak ROUND_HALF_UP(5) olarak ayarlanır. Yuvarlama değerleri şunlardır:
- ROUND_UP - Sıfırdan uzağa yuvarlama modu.
- ROUND_DOWN - Yuvarlama modu sıfıra doğru yuvarlar.
- ROUND_CEILING - Pozitif sonsuzluğa doğru yuvarlama modu. [Giriş pozitifse ROUND_UP aynıdır. Negatifse, ROUND_DOWN gibi davranır. Ex = -1.1, ROUND_CEILING ile -1.0, ROUND_UP ile -2 olacaktır]
- ROUND_FLOOR - Negatif sonsuzluğa doğru yuvarlama modu. [Giriş pozitifse ROUND_DOWN aynıdır. Negatifse, ROUND_UP] olarak davranır
- ROUND_HALF_UP - Her iki komşu da eşit olmadığı sürece "en yakın komşuya" doğru yuvarlama modu, bu durumda ROUND_UP. [Veri akışı için en yaygın + varsayılan].
- ROUND_HALF_DOWN - Her iki komşu da eşit olmadığı sürece "en yakın komşuya" doğru yuvarlama modu, bu durumda ROUND_DOWN.
- ROUND_HALF_EVEN - Her iki komşu da eşit olmadığı sürece "en yakın komşuya" doğru yuvarlama modu, bu durumda çift komşuya doğru yuvarlar.
- ROUND_UNNECESSARY - Yuvarlama modu, yuvarlama işleminin tam sonucu olduğunu, dolayısıyla yuvarlama gerekli olmadığını onaylar.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
1 ile başlayan bir penceredeki satırlar için sıralı satır numaralandırması atar.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Sağlanan doldurmanın dizesini belirli bir uzunlukta olana kadar sağ tuş takımına ekler. Dize uzunluğuna eşit veya ondan büyükse, uzunluğa kırpılır.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Sağ, sondaki karakter dizesini kırpıyor. İkinci parametre belirtilmemişse, boşluğu kırpar. Aksi halde, ikinci parametrede belirtilen herhangi bir karakteri kırpıyor.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Bir tarihin ikinci değerini alır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Yerel saat dilimi varsayılan olarak kullanılır. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Saniye sayısı için milisaniye cinsinden süre.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Bu bit kümesindeki bit konumlarını ayarlar
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Değişen ilkel veri türlerinden oluşan sütun kümesinin SHA-1 özetini hesaplar ve 40 karakterlik onaltılık bir dize döndürür. Bir satır için parmak izi hesaplamak için kullanılabilir.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Bit uzunluğu verilen ve yalnızca 0(256), 224, 256, 384, 512 değerlerinden oluşan değişen temel veri türlerinden oluşan sütun kümesinin SHA-2 özetini hesaplar. Bir satır için parmak izi hesaplamak için kullanılabilir.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Sinüs değerini hesaplar.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Hiperbolik sinüs değerini hesaplar.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Dizi veya eşleme türünün boyutunu bulur
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Bir sütunun çarpıklığını alır.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun çarpıklığını alır.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Bir konumdan dizinin alt kümesini ayıklar. Konum 1 tabanlıdır. Uzunluk atlanırsa, dizenin sonuna varsayılan olarak eklenir.
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
Sağlanan koşul işlevini kullanarak diziyi sıralar. Sort, ifade işlevinde #item1 ve #item2 olarak birbirini izleyen iki öğeye başvuru bekler.
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
Dizenin soundex
kodunu alır.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Bir dizeyi sınırlayıcıya göre böler ve bir dize dizisi döndürür.
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
Bir sayının karekökünü hesaplar.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Dizenin sağlanan dizeyle başlayıp başlamadığını denetler.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Bir sütunun standart sapması alır.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun standart sapması elde eder.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Bir sütunun popülasyon standart sapması alır.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun popülasyon standart sapması elde eder.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Bir sütunun örnek standart sapması alır.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun örnek standart sapması elde eder.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Bir tarih veya zaman damgasından gün çıkarma. Tarih için - işleciyle aynıdır.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Bir tarih veya zaman damgasından ayları çıkarın.
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
Belirli bir uzunluktaki alt dizeyi bir konumdan ayıklar. Konum 1 tabanlıdır. Uzunluk atlanırsa, dizenin sonuna varsayılan olarak eklenir.
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(<dizeden alt sınırlayıcıya>><alt dizeIndex( : string, : string, <sınırlayıcı oluşma sayısı> : integral]) = dize>
Sınırlayıcının oluşumlarından önce count
alt dizeyi ayıklar. Pozitifse count
, son sınırlayıcının solundaki her şey (soldan sayma) döndürülür. Negatifse count
, son sınırlayıcının sağındaki her şey (sağdan sayma) döndürülür.
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
Sayısal sütunun toplam toplamını alır.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Sayısal bir sütunun ayrı değerlerinin toplam toplamını alır.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
Ölçütlere göre sayısal bir sütunun toplam toplamını alır. Koşul herhangi bir sütunu temel alabilir.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
Ölçütlere göre sayısal bir sütunun toplam toplamını alır. Koşul herhangi bir sütunu temel alabilir.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Tanjant değerini hesaplar.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Hiperbolik tanjant değerini hesaplar.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Verilen dizeyi base64'te kodlar. İsteğe bağlı olarak kodlama türünü geçirebilirsiniz
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Herhangi bir sayısal/tarih/zaman damgası/dizeyi ikili gösterime dönüştürür.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
('t', 'true', 'y', 'yes', '1') değerini true ve ('f', 'false', 'n', 'no', '0') değerlerini false ve NULL değerlerine dönüştürür.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Herhangi bir sayısal veya dizeyi bayt değerine dönüştürür. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
İsteğe bağlı bir giriş tarihi biçimi kullanarak giriş tarihi dizesini tarihe dönüştürür. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. Giriş tarihi biçimi atlanırsa, varsayılan biçim yyyy-[M]M-[d]d olur. Kabul edilen biçimler: :[ 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)
Herhangi bir sayısal veya dizeyi ondalık değere dönüştürür. Duyarlık ve ölçek belirtilmezse varsayılan olarak (10,2) olur. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir. EN-US, de, zh-CN gibi BCP47 dili biçiminde isteğe bağlı bir yerel ayar biçimi.
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
Herhangi bir sayısal veya dizeyi çift değere dönüştürür. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir. EN-US, de, zh-CN gibi BCP47 dili biçiminde isteğe bağlı bir yerel ayar biçimi.
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
Herhangi bir sayısal veya dizeyi float değerine dönüştürür. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir. Herhangi bir çifti keser.
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
Herhangi bir sayısal veya dizeyi tamsayı değerine dönüştürür. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir. Uzun, kayan, çift kesen.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Herhangi bir sayısal veya dizeyi uzun bir değere dönüştürür. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir. Herhangi bir şamandırayı ikiye katlar.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Bu sütun için count bağımsız değişkenine göre en yüksek N değerlerini alır.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Herhangi bir sayısal veya dizeyi kısa bir değere dönüştürür. Dönüştürme için isteğe bağlı bir Java ondalık biçimi kullanılabilir. Herhangi bir tamsayıyı, uzun, kayan, çifti kesebilir.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
İlkel veri türünü dizeye dönüştürür. Sayılar ve tarih için bir biçim belirtilebilir. Belirtilmemişse, sistem varsayılanı seçilir. Sayılar için Java ondalık biçimi kullanılır. Tüm olası tarih biçimleri için Java SimpleDateFormat'a bakın; varsayılan biçim yyyy-AA-gg şeklindedir. Tarih veya zaman damgası için isteğe bağlı olarak bir yerel ayar belirtilebilir.
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
İsteğe bağlı bir zaman damgası biçimi verilen bir dizeyi zaman damgasına dönüştürür. Zaman damgası atlanırsa varsayılan desen yyyy-[M]M-[d]d hh:mm:ss[.f...] kullanılır. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Zaman damgası, 999 değeriyle milisaniyeye kadar doğruluğu destekler. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Zaman damgasını UTC'ye dönüştürür. İsteğe bağlı bir saat dilimini 'GMT', 'PST', 'UTC', 'America/Cayman' biçiminde geçirebilirsiniz. Varsayılan olarak geçerli saat dilimidir. Kullanılabilir biçimler için Java sınıfına SimpleDateFormat
bakın. 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
Bir karakter kümesini dizedeki başka bir karakter kümesiyle değiştirin. Karakterlerin 1 ile 1 arası değişimi vardır.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Baştaki ve sondaki karakterlerden oluşan bir dizeyi kırpar. İkinci parametre belirtilmemişse, boşluğu kırpar. Aksi halde, ikinci parametrede belirtilen herhangi bir karakteri kırpıyor.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Her zaman doğru bir değer döndürür. 'true' adlı bir sütun varsa işlevini syntax(true())
kullanın.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Sütunun türüyle eşleşir. Yalnızca desen ifadelerinde kullanılabilir. Sayı kısa, tamsayı, uzun, çift, kayan veya ondalık ile eşleşir, tamsayı kısa, tamsayı, uzun, kesirli eşleşmeler çift, kayan, ondalık ve tarih saat tarih veya zaman damgası türüyle eşleşir.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Bir dizeyi biçime göre kaldırıyor. Kabul edilebilir biçim için değişmez değerler :'json', 'xml', 'ecmascript', 'html', 'java'.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Bir diziyi bir satır kümesine açar ve her satırdaki kalan sütunların değerlerini yineler.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
bir ikili değeri dize gösteriminden kaldırır. Bu, dizeden ikili gösterime dönüştürmek için sha2, md5 ile kullanılabilir
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
2 diziden ayrı öğelerden oluşan bir birleşim kümesi döndürür.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Bir dizeyi büyük harfle ifade eder.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Oluşturulan UUID değerini döndürür.
uuid()
V
variance
variance(<value1> : number) => double
Bir sütunun varyansını alır.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun varyansını alır.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Bir sütunun popülasyon varyansını alır.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre bir sütunun popülasyon varyansını alır.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Bir sütunun sapmasız varyansını alır.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
Ölçütlere göre sütunun sapmasız varyansını alır.
varianceSampleIf(region == 'West', sales)
Ça
weekOfYear
weekOfYear(<value1> : datetime) => integer
Bir tarih verilen yılın haftasını alır.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Hafta sayısı için milisaniye cinsinden süre.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Mantıksal XOR işleci. ^ işleciyle aynı.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
Tarihin yıl değerini alır.
year(toDate('2012-8-8')) -> 2012
İlgili içerik
- Tüm toplama işlevlerinin listesi.
- Tüm dizi işlevlerinin listesi.
- Önbelleğe alınmış tüm arama işlevlerinin listesi.
- Tüm dönüştürme işlevlerinin listesi.
- Tüm tarih ve saat işlevlerinin listesi.
- Tüm ifade işlevlerinin listesi.
- Tüm harita işlevlerinin listesi.
- Tüm meta işlevlerin listesi.
- Tüm pencere işlevlerinin listesi.
- İfade Oluşturucusu'nu kullanmayı öğrenin.