إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Azure Data Factory
Azure Synapse Analytics
Tip
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
تتوفر تدفقات البيانات في كل من مسارات Azure Data Factory وخطوط أنابيب Azure Synapse Analytics. تنطبق هذه المقالة على تعيين تدفقات البيانات. إذا كنت جديدا على التحويلات، فراجع المقالة التمهيدية تحويل البيانات باستخدام تعيين تدفقات البيانات.
تقدم هذه المقالة تفاصيل حول استخدام جميع التعبيرات والوظائف المدعومة من قبل Azure Data Factory وAzure Synapse Analytics في رسم خريطة تدفقات البيانات. للحصول على ملخصات لكل نوع من الدوال المدعومة، راجع المقالات التالية:
- دالات التجميع
- دوال الصفيف
- دوال البحث المخزنة مؤقتا
- دوال التحويل
- دول التاريخ والوقت
- دالات التعبير
- وظائف الخريطة
- Metafunctions
- دوال النافذة
القائمة الأبجدية لجميع الدوال
تتضمن القائمة الأبجدية التالية جميع الوظائف المتاحة في تدفقات بيانات الخرائط.
A
abs
abs(<value1> : number) => number
يعيد القيمة المطلقة لرقم.
abs(-20) -> 20abs(10) -> 10
acos
acos(<value1> : number) => double
حساب قيمة معكوسة جيب التمام.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
إضافة زوج من السلاسل أو الأرقام. إضافة تاريخ إلى عدة أيام. تضيف مدة إلى الطابع الزمني. يرفق مصفوفة من نوع مشابه إلى آخر. مثل عامل التشغيل +.
add(10, 20) -> 3010 + 20 -> 30add('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
تضيف أياما إلى التاريخ أو الطابع الزمني. نفس العامل + في التواريخ.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
تضيف شهرا إلى التاريخ أو الطابع الزمني. يمكنك اختياريا تجاوز منطقة زمنية معينة.
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
يستخدم المؤثر المنطقي AND . نفس الشيء مثل &&.
and(true, false) -> falsetrue && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
الحصول على العدد الإجمالي التقريبي للقيم المميزة للعمود. المعلمة الثانية الاختيارية هي التحكم في خطأ التقدير.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
إنشاء صفيف عناصر. يجب أن تكون جميع العناصر من نفس النوع. إذا لم يتم تحديد أي عناصر، فإن صفيف السلسلة الفارغة هي الافتراضية. نفس عامل الإنشاء [].
array('Seattle', 'Washington')['Seattle', 'Washington']['Seattle', 'Washington'][1]'Washington'
ascii
ascii(<Input> : string) => number
إرجاع القيمة الرقمية لحرف الإدخال. إذا كان السلسلة المدخلة تحتوي على أكثر من حرف واحد، يتم إرجاع القيمة الرقمية للحرف الأول.
ascii('A') -> 65ascii('a') -> 97
asin
asin(<value1> : number) => double
حساب قيمة معكوسة جيب الزاوية.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
يُرجع مخططاً لجميع رسائل الخطأ للصف ذي معرف التأكيد باعتباره المفتاح.
Examples
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
إنشاء مخطط للمفتاح/القيم. يجب أن تكون جميع المفاتيح والقيم من نفس النوع. إذا لم يتم تحديد أي عناصر، تعيينها افتراضيا إلى خريطة سلسلة إلى نوع سلسلة. نفس عامل الإنشاء [ -> ]. يجب أن تتناوب المفاتيح والقيم مع بعضها البعض.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
البحث عن العنصر في فهرس صفيف. المؤشر يعتمد على 1. المؤشر خارج الحدود ينتج عنه قيمة صفرية. يجد قيمة في خريطة عند إعطائها مفتاح. إذا لم يتم العثور على المفتاح، فإنه يعيد قيمة صفرية.
at(['apples', 'pears'], 1) => 'apples'at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
تحسب قيمة المماس المعكوسة.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
إرجاع الزاوية بالتقدير الدائري بين المحور السيني الموجب لمستوى والنقطة المعطاة بالإحداثيات.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
الحصول على متوسط قيم عمود.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
يحصل على متوسط قيم العمود، بناء على المعايير.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
التحقق مما إذا كانت القيمة الأولى تقع بين قيمتين أخريين بشكلٍ شامل. يمكنك مقارنة القيم الرقمية، والسلاسل النصية، والقيم datetime .
between(10, 5, 24)truebetween(currentDate(), currentDate() + 10, currentDate() + 20)false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
يستخدم عامل البت And عبر أنواع التكامل. مثل عامل التشغيل &.
bitwiseAnd(0xf4, 0xef)0xe4(0xf4 & 0xef)0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
يستخدم عامل البت Or عبر أنواع التكامل. مثل عامل التشغيل |.
bitwiseOr(0xf4, 0xef)0xff(0xf4 | 0xef)0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
يستخدم عامل البت Or عبر أنواع التكامل. نفس العامل |
bitwiseXor(0xf4, 0xef)0x1b(0xf4 ^ 0xef)0x1b(true ^ false)true(true ^ true)false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
يحسب ملخص Blake2 لمجموعة من الأعمدة ذات أنواع بيانات بدائية مختلفة عند إعطاء طول بت، والذي لا يمكن أن يكون إلا مضاعفات 8 بين 8 و512. يمكنك استخدامه لحساب بصمة الإصبع لصف.
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
يحسب ملخص Blake2 لمجموعة من الأعمدة ذات أنواع بيانات بدائية مختلفة عند إعطاء طول بت، والذي لا يمكن أن يكون إلا مضاعفات 8 بين 8 و512. يمكنك استخدامه لحساب بصمة الإصبع لصف.
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
يجد عنصرا فرعيا داخل هيكل أو مصفوفة من الهياكل. إذا كان هناك العديد من حالات التطابق، يتم إرجاع التطابق الأول. إذا لم تكن هناك تطابقات، NULL يتم إرجاع قيمة. يجب تحويل القيمة المرتجعة من النوع بواسطة أحد إجراءات تحويل الأنواع (مثل ? date و ? string). أسماء أعمدة العناوين المعروفة في وقت التصميم بأسمائها. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
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
تحديد قيمة العمود حسب الاسم في التدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. إذا كان هناك العديد من حالات التطابق، يتم إرجاع التطابق الأول. إذا لم تكن هناك تطابقات، NULL يتم إرجاع قيمة. يجب تحويل القيمة المرتجعة نوعا بواسطة إحدى دوال تحويل الأنواع (مثل TO_DATE و TO_STRING). أسماء أعمدة العناوين المعروفة في وقت التصميم بأسمائها. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
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
تحديد صفيف أعمدة حسب الاسم في التدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. إذا كان هناك العديد من حالات التطابق، يتم إرجاع التطابق الأول. إذا لم تكن هناك تطابقات لعمود، فإن الناتج الكامل هو NULL قيمة. تتطلب القيمة المرتجعة دالة تحويل النوع (مثل toDate و toString). أسماء أعمدة العناوين المعروفة في وقت التصميم بأسمائها. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
toString(byNames(['parent', 'child']))byNames(['parent']) ? stringtoLong(byNames(['income']))byNames(['income']) ? longtoBoolean(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
تحديد قيمة العمود حسب الاسم في تدفق الأصل. الوسيطة الثانية هي اسم تدفق الأصل. إذا كان هناك العديد من حالات التطابق، يتم إرجاع التطابق الأول. إذا لم تكن هناك تطابقات، NULL يتم إرجاع قيمة. يجب تحويل القيمة المرتجعة نوعا بواسطة إحدى دوال تحويل الأنواع (مثل TO_DATE و TO_STRING). أسماء أعمدة العناوين المعروفة في وقت التصميم بأسمائها. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
تحديد صفيف أعمدة حسب الاسم في التدفق. الحجة الثانية هي التيار الذي نشأ منه. إذا كان هناك العديد من حالات التطابق، يتم إرجاع التطابق الأول. إذا لم تكن هناك تطابقات، NULL يتم إرجاع قيمة. يجب تحويل القيمة المرتجعة نوعا بواسطة إحدى دوال تحويل الأنواع (مثل TO_DATE و TO_STRING). أسماء أعمدة العناوين المعروفة في وقت التصميم بأسمائها. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
البحث عن مسار هرمي بالاسم في الدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. إذا لم يتم العثور على مثل هذا المسار، فإنه يعود NULL. يجب أن تتناول أسماء الأعمدة/المسارات المعروفة في وقت التصميم فقط باستخدام اسمها أو مسار تدوين النقطة. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
تحديد قيمة عمود حسب موضعها النسبي (يستند إلى 1) في الدفق. إذا كان المركز خارج الحدود، فإنه يعطي NULL قيمة. يجب تحويل القيمة المرتجعة من النوع بواسطة إحدى دوال تحويل الأنواع (مثل TO_DATE أو TO_STRING). المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
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
استنادا إلى شروط متناوبة، تطبق الدالة case قيمة واحدة أو الأخرى. إذا كان عدد المدخلات زوجيا، يتم وضع الآخر افتراضيا NULL للشرط الأخير.
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')) -> truecase(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus', 'dumbo') -> 'dumbo'
cbrt
cbrt(<value1> : number) => double
حساب الجذر التكعيبي لرقم.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
إرجاع أصغر عدد صحيح وليس أصغر من الرقم.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
يرجع حرف ASCII الممثل برقم الإدخال. إذا كان العدد أكبر من 256، تكون النتيجة مكافئة ل char (الرقم % 256).
char(65) -> 'A'char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
إرجاع القيمة الأولى غير الفارغة من مجموعة إدخالات. يجب أن تكون جميع الإدخالات من نفس النوع.
coalesce(10, 20) -> 10coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
تجميع جميع قيم التعبير في المجموعة المجمعة في صفيف. يمكنك جمع وتحويل الهياكل إلى هياكل بديلة خلال هذه العملية. عدد العناصر يساوي عدد الصفوف في تلك المجموعة ويمكن أن يحتوي على قيم فارغة. يجب أن يكون عدد العناصر المجمعة صغيراً.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
تجميع جميع قيم التعبير في المجموعة المجمعة في صفيف فريد. يمكنك جمع وتحويل الهياكل إلى هياكل بديلة خلال هذه العملية. عدد العناصر يساوي عدد الصفوف في تلك المجموعة ويمكن أن يحتوي على قيم فارغة. يجب أن يكون عدد العناصر المجمعة صغيراً.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(
<value1>columnNames(: string, i><value1>: منطقي) => مصفوفة
الحصول على أسماء جميع أعمدة الإخراج الخاصة بالتدفق. يمكنك تمرير اسم دفق البيانات اختياري باعتباره الوسيطة الأولى. الوسيطة الثانية اختيارية أيضاً، حيث تكون القيمة false هي القيمة الافتراضية. إذا قمت بتعيين الوسيطة الثانية إلى true()، فإن Data Factory ترجع الأعمدة التي تم انجرافها عبر انحراف المخطط فقط.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
الحصول على قيم جميع أعمدة الإخراج الخاصة بالتدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
مقارنة قيمتين من نفس النوع. يعيد عددا صحيحا سالبا إذا كانت القيمة1 < قيمت2، 0 إذا كانت القيمة1 == قيمت2، وقيمة موجبة إذا كانت القيمة1 > قيمت2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
ربط عدد متغير من السلاسل معاً. نفس العامل + الذي يستخدم سلاسل نصية.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
ربط عدد متغير من السلاسل مع فاصل. المعلمة الأولى هي الفاصل.
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
يعيد true إذا كان أي عنصر في المصفوفة المقدمة يقيم كما true في المسند المذكور. تتوقع الدالة Σ contains مرجعا إلى عنصر واحد في دالة المحمولة ك #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
حساب قيمة جيب التمام.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
حساب جيب الزاوية الزائدي لقيمة.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
الحصول على العدد الإجمالي للقيم. إذا تم تحديد عمود أو أكثر اختياريا، فإنه يتجاهل NULL القيم في العد.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
يحصل على العدد التجريمي للقيم بما في ذلك القيم الصفرية.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
الحصول على العدد الإجمالي للقيم المميزة لمجموعة من الأعمدة.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
يحصل على العدد التجريمي للقيم المميزة لمجموعة من الأعمدة بما في ذلك القيم الفارغة.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
يحصل على العدد الإجمالي للقيم، بناء على المعايير. إذا تم تحديد العمود الاختياري، فإنه NULL يتجاهل القيم في العد.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
الحصول على التباين المشترك للمحتوى بين عمودين.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
يحصل على تغاير السكان لعمودين، بناء على المعايير.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
الحصول على نموذج التباين المشترك لعمودين.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
تحصل على التغاير العيني لعمودين بناء على المعايير.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
يحسب تجزئة CRC32 لمجموعة من الأعمدة ذات أنواع بيانات بدائية مختلفة عند إعطاء طول بت، والذي لا يمكن أن يكون إلا بقيم 0(256)، 224، 256، 384، و 512. يمكنك استخدامه لحساب بصمة الإصبع لصف.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
cumeDist تحسب الدالة موقع قيمة ما بالنسبة لجميع القيم في التقسيم. والنتيجة هي عدد الصفوف السابقة أو المساوية للصف الحالي في ترتيب القسم مقسوماً على العدد الإجمالي للصفوف في جزء النافذة. يتم تقييم أي قيم ربط في الترتيب إلى نفس الموضع.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
الحصول على التاريخ الحالي لبدء تشغيل هذه الوظيفة. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. يتم استخدام المنطقة الزمنية المحلية لمركز البيانات/المنطقة في مصنع البيانات كخيار افتراضي. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
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
يحصل على الطابع الزمني الحالي عندما تبدأ المهمة في العمل بتوقيت محلي.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
يحصل على الطابع الزمني الحالي كتوقيت UTC. إذا أردت أن يفسر وقتك الحالي في منطقة زمنية مختلفة عن منطقة زمنية العنقود، يمكنك تمرير منطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. يحسب الوضع الافتراضي للمنطقة الزمنية الحالية. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة. لتحويل توقيت UTC إلى منطقة زمنية مختلفة، استخدم 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
يحصل على يوم الشهر عندما يعطى تاريخا.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
يحصل على يوم الأسبوع عندما يعطى موعدا. على سبيل المثال، 1 هل هو الأحد، 2 هو الاثنين، ... وهو 7 يوم السبت.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
يحصل على يوم السنة عندما يعطى تاريخا.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
المدة بالمللي ثانية لعدد الأيام.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
فك ترميز بيانات الإدخال المشفرة في سلسلة استنادا إلى مجموعة الأحرف المحددة. يمكنك استخدام وسيط ثان (اختياري) لتحديد أي مجموعة رموز تستخدم. الأمثلة هي US-ASCII، ، ( UTF-8 الافتراضي)، UTF-16BE، UTF-16LE، و UTF-16ISO-8859-1.
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
تحويل التقدير الدائري إلى درجات.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
حساب رتبة قيمة في مجموعة من القيم المحددة في ترتيب الإطار حسب العبارة. والنتيجة هي واحد زائد عدد الصفوف السابقة أو مساوية للصف الحالي في ترتيب القسم. لا تنتج القيم فجوات في التسلسل. تعمل الدالة denseRank حتى عندما لا تكون البيانات مرتبة، وتبحث عن تغير في القيم.
denseRank()
distinct
distinct(<value1> : array) => array
إرجاع مجموعة مميزة من العناصر من صفيف.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
تقسيم زوج من الأرقام. مثل عامل التشغيل /.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
إزالة العديد من الأحرف من يسار السلسلة. إذا تجاوز الإفلات المطلوب طول السلسلة، يتم إرجاع سلسلة فارغة.
dropLeft('bojjus', 2) => 'jjus'
dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
إزالة العديد من الأحرف من يمين السلسلة. إذا تجاوز الإفلات المطلوب طول السلسلة، يتم إرجاع سلسلة فارغة.
dropRight('bojjus', 2) => 'bojj'
dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
ترميز بيانات سلسلة الإدخال إلى ثنائي استنادا إلى مجموعة charset. يمكن استخدام وسيط ثان (اختياري) لتحديد مجموعة الأمور التي يجب استخدامها. الأمثلة هي US-ASCII، ، ( UTF-8 الافتراضي)، UTF-16BE، UTF-16LE، و UTF-16ISO-8859-1.
encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))
endsWith
endsWith(<string> : string, <substring to check> : string) => boolean
التحقق مما إذا كانت السلسلة تنتهي بالسلسلة المرفقة.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
يستخدم مؤثر المقارنة (iso). مثل عامل التشغيل ==.
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
يستخدم المقارنة تساوي عامل متجاهل الحالة. مثل عامل التشغيل <=>.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
تخطي سلسلة وفقاً لتنسيق. القيم الحرفية للتنسيق المقبول هي json، xml، ، htmlecmascript، و java.
except
except(<value1> : array, <value2> : array) => array
إرجاع مجموعة فرق من صفيف واحد من آخر إسقاط التكرارات.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
ينتج عنه تعبير من سلسلة، وهو نفس كتابة هذا التعبير بشكل غير حرفي. يمكنك استخدامه لتمرير المعاملات كتمثيلات نصية.
expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
حساب مضروب الرقم.
factorial(5) -> 120
false
false() => boolean
إرجاع قيمة خاطئة دائماً. استخدم الدالة syntax(false()) إذا كان العمود يسمى false.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
تصفية العناصر خارج الصفيف التي لا تتوافق مع المسند المقدم. يتوقع المرشح إشارة إلى عنصر واحد في دالة المسند ك #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
ابحث عن العنصر الأول من الصفيف المطابق للشرط. يأخذ دالة مرشح حيث يمكنك عنونة العنصر في المصفوفة ك #item. بالنسبة للخرائط المتداخلة بعمق، يمكنك الرجوع إلى الخرائط الأب باستخدام #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
الحصول على القيمة الأولى لمجموعة الأعمدة. إذا تم حذف المعامل ignoreNulls الثاني، يفترض مصنع البيانات أنه خطأ.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
يقوم بتسطيح مصفوفة أو مصفوفات إلى مصفوفة واحدة. يتم إرجاع صفائف العناصر الذرية دون تغيير. الوسيطة الأخيرة اختيارية ويتم تعيينها افتراضياً على false إلى flatten بشكل متكرر أكثر من مستوى واحد عميق.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
إرجاع أكبر عدد صحيح لا يزيد عن الرقم.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
فك تشفير السلسلة المشفرة بنظام base64 المحدد. يمكنك اختيارياً تمرير نوع الترميز.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
يتحول إلى الطابع الزمني من UTC. يمكنك اختياريا تجاوز المنطقة الزمنية على شكل GMT، PST، UTC، أو America/Cayman. يحسب الوضع الافتراضي للمنطقة الزمنية الحالية. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
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
يستخدم عامل المقارنة الكبرى. نفس عامل التشغيل >.
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
يستخدم المقارنة التي تتجاوز أو تساوي المؤثر. نفس عامل التشغيل >=.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
يرجع أكبر قيمة بين قائمة القيم كمدخل، متخطيا القيم الفارغة. يعود إذا 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
التحقق من قيمة عمود حسب الاسم في التدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. أسماء أعمدة العناوين المعروفة في وقت التصميم بأسمائها. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
يتحقق مما إذا كان الأصل الذي يحمل معرفا مقدما قد تم وسمه كخطأ.
Examples
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
التحقق من وجود مسار هرمي معين بالاسم في الدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. يجب أن تتناول أسماء الأعمدة/المسارات المعروفة في وقت التصميم فقط باستخدام اسمها أو مسار تدوين النقطة. المدخلات المحوسبة غير مدعومة، لكن يمكنك استخدام استبدالات المعلمات.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
إرجاع تمثيل سلسلة سداسية عشرية لقيمة ثنائية
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
تحصل على قيمة الساعة كطابع زمني. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تستخدم المنطقة الزمنية المحلية كخيار افتراضي. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
hour(toTimestamp('2009-07-30 12:58:59')) -> 12
hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12
hours
hours(<value1> : integer) => long
يحصل على المدة بالمللي ثانية لعدد الساعات.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
يطبق قيمة واحدة أو الأخرى بناء على شرط. إذا لم يكن الآخر محددا، تعتبر NULLالقيمة . يجب أن تكون القيمتان متوافقتين (مثل العددية والسلاسل النصية).
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
يعيد أول عنصر غير فارغ عند إعطاؤه مدخلين أو أكثر. هذه الدالة تعادل الدالة 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
التحقق من وجود عنصر في الصفيف.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
تحويل الحرف الأول من كل كلمة إلى أحرف كبيرة. يتم تحديد الكلمات على أنها مفصولة بمسافة بيضاء.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
البحث عن موضع السلسلة الفرعية (المستندة إلى 1) ضمن سلسلة. إذا لم يتم العثور عليه، 0 يتم إرجاعه.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
إرجاع مجموعة تقاطع من العناصر المميزة من صفيفين.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
يتحقق مما إذا كان موضع البت مضبوطا في هذه المجموعة.
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
يتحقق مما إذا كانت قيمة السلسلة هي قيمة بولينية وفقا لقواعد toBoolean().
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
يتحقق مما إذا كانت قيمة السلسلة هي قيمة بايت عند إعطاؤها تنسيقا اختياريا وفقا لقواعد toByte().
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت سلسلة تاريخ الإدخال هي تاريخ باستخدام تنسيق تاريخ إدخال اختياري. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة. إذا تم حذف تنسيق تاريخ الإدخال، فإن الصيغة الافتراضية هي yyyy-[M]M-[d]d. الصيغ المقبولة هي :[ 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
يتحقق مما إذا كانت قيمة السلسلة النصية قيمة عشرية عند إعطاؤها تنسيقا اختياريا وفقا لقواعد .toDecimal()
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
يتحقق مما إذا كان يجب حذف الصف. بالنسبة للتحويلات التي تتطلب أكثر من تدفق إدخال، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التيار إما 1 أو 2، والقيمة الافتراضية هي 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
اكتشاف ما إذا كان عموداً أو مجموعة من الأعمدة مميزة. لا يعتبر الصفر قيمة مميزة.
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت قيمة السلسلة هي قيمة مزدوجة عند إعطاؤها تنسيقا اختياريا وفقا لقواعد toDouble().
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
يتحقق مما إذا كان الصف قد تم وسمه كخطأ. بالنسبة للتحويلات التي تتطلب أكثر من تدفق إدخال، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التدفق إما 1 أو 2 والقيمة الافتراضية هي 1.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت قيمة السلسلة هي قيمة عائمة عند إعطاؤها تنسيقا اختياريا وفقا لقواعد toFloat().
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
يتحقق مما إذا كان يجب تجاهل الصف. بالنسبة للتحويلات التي تتطلب أكثر من تدفق مدخل، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التيار إما 1 أو 2، والقيمة الافتراضية هي 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
التحقق مما إذا كان الصف محدداً للإدراج. بالنسبة للتحويلات التي تتطلب أكثر من تدفق مدخل، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التيار إما 1 أو 2، والقيمة الافتراضية هي 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت قيمة السلسلة هي قيمة صحيحة عند إعطاؤها تنسيقا اختياريا وفقا لقواعد toInteger().
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت قيمة السلسلة النصية طويلة عند إعطاؤها تنسيقا اختياريا وفقا لقواعد toLong().
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
التحقق مما إذا كان الصف متطابقاً عند البحث. بالنسبة للتحويلات التي تتطلب أكثر من تدفق مدخل، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التيار إما 1 أو 2، والقيمة الافتراضية هي 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
يتحقق إذا لم تكن القيمة رقما.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
يتحقق مما إذا كانت القيمة هي NULL.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت قيمة السلسلة النصية قيمة قصيرة عند إعطاؤها تنسيقا اختياريا وفقا لقواعد toShort().
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
يتحقق مما إذا كانت سلسلة تاريخ الإدخال هي ختم زمني باستخدام تنسيق اختتام زمني اختياري. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة. إذا تم حذف الطابع الزمني، يستخدم النمط yyyy-[M]M-[d]d hh:mm:ss[.f...] الافتراضي. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تدعم الدالة timestamp دقة تصل إلى ميلي ثانية بقيمة .999 راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
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
التحقق مما إذا كان الصف محدداً للتحديث. بالنسبة للتحويلات التي تتطلب أكثر من تدفق مدخل، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التيار إما 1 أو 2، والقيمة الافتراضية هي 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
التحقق مما إذا كان الصف محدداً للإدراج. بالنسبة للتحويلات التي تتطلب أكثر من تدفق مدخل، يمكنك تمرير مؤشر (1) للتدفق. يجب أن يكون مؤشر التيار إما 1 أو 2، والقيمة الافتراضية هي 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
الحصول على مسافة JaroWinkler بين سلسلتين.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
إنشاء مخطط للمفتاح/القيم. المعامل الأول هو مصفوفة من المفاتيح، والثاني هو مصفوفة القيم. يجب أن يكون طول الصفيفين متساوياً.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
الحصول على تفرطح العمود.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
يحصل على الكورتوزيس للعمود، بناء على المعايير.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
يحصل على قيمة أول صفوف مقيمة n للمعلمة قبل الصف الحالي. المعامل الثاني هو عدد الصفوف التي يجب النظر إليها إلى الوراء، والقيمة الافتراضية هي 1. إذا لم تكن هناك عدد كاف من الصفوف، يتم إرجاع قيمة null ما لم يتم تحديد قيمة افتراضية.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
الحصول على القيمة الأخيرة لمجموعة الأعمدة. إذا تم حذف المعامل ignoreNulls الثاني، يفترض أنه خاطئ.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
يحصل على آخر تاريخ في الشهر عندما يعطى تاريخا.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
يحصل على قيمة أول صفوف مقيمة n بعد الصف الحالي. المعامل الثاني هو عدد الصفوف التي يجب النظر إليها للأمام، والقيمة الافتراضية هي 1. إذا لم تكن هناك عدد كاف من الصفوف، يتم إرجاع قيمة null ما لم يتم تحديد قيمة افتراضية.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
يستخدم المقارنة الأقل من أو المساواة للمؤثر. مثل عامل التشغيل <=.
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
يستخرج سلسلة فرعية تبدأ عند الفهرس 1 بعدد الحروف. نفس الشيء مثل SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
إرجاع طول السلسلة.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
يستخدم عامل المقارنة الأقل (par less). مثل عامل التشغيل <.
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
يستخدم المقارنة الأقل من أو المساواة للمؤثر. مثل عامل التشغيل <=.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
الحصول على مسافة levenshtein بين سلسلتين.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
يستخدم نمط أوتار متطابق حرفيا. الاستثناءات هي الرموز الخاصة التالية: _ تطابق أي حرف في الإدخال (مماثلة للتعبيرات .*posix العادية).
% تطابق صفر أو أكثر من الأحرف في الإدخال (مشابه للتعبيرات .*posix المنتظمة).
حرف الإلغاء هو ''. إذا كان حرف الإلغاء يسبق رمزاً خاصاً أو حرف إلغاء آخر، فستتم مطابقة الحرف التالي حرفياً. لا يجوز الهروب من أي حرف آخر.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
يحدد الموقع (1 مبنا) للوتر الفرعي داخل وتر يبدأ من موضع معين. إذا تم حذف الوضعية، تبدأ من بداية الوتر. إذا لم يتم العثور عليه، 0 يتم إرجاعه.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
يحسب قيمة اللوغاريتم. يمكنك توفير قاعدة اختيارية أو رقم أويلر إذا استخدمت.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
يحسب قيمة اللوغاريتيم بناء على قاعدة 10.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
يبحث عن الصف الأول من المخزن المخزن باستخدام المفاتيح المحددة التي تطابق المفاتيح من المخزن المخزن.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
تصغير حروف السلسلة.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
يقوم الوسادة اليسرى بالوتر بجانب الحشوة المرفقة حتى يصبح الوتر بطول معين. إذا كان الوتر مساويا أو أكبر من الطول، يتم قص الخيط حسب الطول.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
تقليص من جهة اليسار لسلسلة من الأحرف البادئة. إذا لم يكن المعامل الثاني محددا، فإنه يقص الفراغ الأبيض. وإلا، فإنه يقص أي حرف محدد في المعامل الثاني.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
يربط كل عنصر من المصفوفة بعنصر جديد باستخدام التعبير المقدم. تتوقع الدالة map إشارة إلى عنصر واحد في دالة التعبير ك #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
تحويل مخطط عن طريق ربط المفاتيح بقيم جديدة. إرجاع صفيف. يتطلب دالة تعيين حيث يمكنك معالجة العنصر ك #key والقيمة الحالية ك #value.
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
يربط مصفوفة مشروطة إلى مصفوفة أخرى بنفس الطول أو أقل. يمكن أن تكون القيم من أي نوع بيانات، بما في ذلك structTypes. يتطلب دالة تعيين حيث يمكنك توجيه العنصر في المصفوفة ك #item و الفهرس الحالي ك #index. بالنسبة للخرائط المتداخلة بعمق، يمكنك الرجوع إلى الخرائط الأب باستخدام الترميز ''#item_[n] (#item_1, #index_1').
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
يربط كل عنصر من المصفوفة بعنصر جديد باستخدام التعبير المقدم. تتوقع الدالة map إشارة إلى عنصر واحد في دالة التعبير ك #item وإشارة إلى مؤشر العنصر ك #index.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
يمر 1 من إلى الطول لإنشاء مصفوفة بهذا الطول. يتطلب دالة تعيين حيث يمكنك توجيه الفهرس في المصفوفة ك #index. بالنسبة للخرائط المتداخلة بعمق، يمكنك الرجوع إلى الخرائط الأب باستخدام #index_n الترميز (#index_1، #index_2).
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
الحصول على الحد الأقصى لقيمة العمود.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
تحصل على أقصى قيمة للعمود، بناء على المعايير.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
يحسب ملخص MD5 لمجموعة من الأعمدة بأنواع بيانات بدائية مختلفة ويعيد سلسلة سداسية مكونة من 32 حرفا. يمكنك استخدامه لحساب بصمة الإصبع لصف.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
الحصول على متوسط قيم عمود. نفس الشيء مثل AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
يحصل على متوسط قيم العمود، بناء على المعايير. نفس الشيء مثل avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
الحصول على قيمة الملّي ثانية للتاريخ. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تستخدم المنطقة الزمنية المحلية كخيار افتراضي. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
milliseconds
milliseconds(<value1> : integer) => long
يحصل على المدة بالمللي ثانية مقابل عدد المللي ثانية.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
يحصل على الحد الأدنى لقيمة العمود.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
تحصل على القيمة الدنيا للعمود، بناء على المعايير.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
طرح الأرقام. يطرح عدد الأيام من التاريخ. يطرح المدة من الطابع الزمني. يطرح طابعين زمنيين للحصول على الفرق بالملي ثانية. مثل عامل التشغيل -.
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
يحصل على قيمة دقيقة مثل ختم زمني. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تستخدم المنطقة الزمنية المحلية كخيار افتراضي. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
minute(toTimestamp('2009-07-30 12:58:59')) -> 58
minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58
minutes
minutes(<value1> : integer) => long
يحصل على المدة بالمللي ثانية مقابل عدد الدقائق.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
يبحث عن جميع الصفوف المتطابقة من المخزن المخزن باستخدام المفاتيح المحددة التي تطابق المفاتيح من مخزن التخزين المؤقت.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
يحصل على معامل زوج من الأعداد. مثل عامل التشغيل %.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
يحصل على قيمة الشهر كتاريخ أو ختم زمني.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
الحصول على عدد الأشهر بين تاريخين. يُمكنك تقريب الحساب. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تستخدم المنطقة الزمنية المحلية كخيار افتراضي. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677
multiply
multiply(<value1> : any, <value2> : any) => any
يضرب زوجا من الأعداد. مثل عامل التشغيل *.
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
نفي رقماً. تحويل الأرقام الموجبة إلى سلبية والعكس صحيح.
negate(13) -> -13
nextSequence
nextSequence() => long
إرجاع التسلسل الفريد التالي. الرقم متتالي فقط داخل القسم ويبدأ بمعرف القسم.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
يقوم بتطبيع قيمة السلسلة النصية إلى أحرف يونيكود المميزة بشكل منفصل.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
يستخدم عامل النفي المنطقي.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
يستخدم مؤثرة المقارنة التي لا تساوي المعامل. مثل عامل التشغيل !=.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
تقسم الدالة nTile الصفوف لكل تقسيم نافذة إلى n دلاء تتراوح من 1 إلى كحد أقصى n. تختلف قيم الدلو بحد أقصى . 1 إذا لم يتم تقسيم عدد الصفوف في القسم بالتساوي إلى عدد المجموعات، فسيتم توزيع القيم المتبقية بمعدل واحد لكل مجموعة، بدءاً من المجموعة الأولى. تعد الدالة nTile مفيدة في حساب tertiles، والربيعيات، والعشريات، وإحصاءات الملخص الشائعة الأخرى. تحسب الدالة متغيرين أثناء التهيئة. حجم الدلو العادي يضاف إليه صف إضافي. يعتمد كلا المتغيرين على حجم القسم الحالي. خلال عملية الحساب، تحتفظ الدالة بتتبع رقم الصف الحالي، ورقم الدلو الحالي، ورقم الصف الذي يتغير عنده الدلو (bucketThreshold). عندما يصل رقم الصف الحالي إلى عتبة الدلو، تزداد قيمة الدلو بمقدار واحد. تزداد العتبة بحجم الدلو (بالإضافة إلى واحدة إضافية إذا كان الدلو الحالي مبطنا).
nTile()
nTile(numOfBuckets)
null
null() => null
يعيد قيمة NULL . استخدم الدالة syntax(null()) إذا كان العمود يسمى null. أي عملية تستخدم الصفر تؤدي إلى قيمة 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
يستخدم المؤثر المنطقي OR . نفس الشيء مثل ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
يحصل على كل أعمدة الإخراج لتدفق بيانات الأصل حيث تم إنشاء الأعمدة. يجب تضمينه في دالة أخرى.
array(toString(originColumns('source1')))
output
output() => any
يعيد الصف الأول من نتائج مصارف التخزين المؤقت.
cacheSink#output()
outputs
output() => any
يعيد مجموعة صفوف الإخراج الكاملة لنتائج مصرف الكاش.
cacheSink#outputs()
P
partitionId
partitionId() => integer
يرجع معرف القسم الحالي الذي يوجد فيه صف الإدخال.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
يعطي معامل موجب لزوج من الأعداد.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
رفع رقم واحد إلى قوة آخر.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
يحول الدرجات إلى راديان.
radians(180) => 3.141592653589793
random
random(<value1> : integral) => double
يعيد رقما عشوائيا عند إعطاؤه بذرة داخل قسم. يجب أن تكون البذرة قيمة ثابتة وتستخدم مع معرف التقسيم لإنتاج قيم عشوائية في نطاق (0.0-1.0).
random(1) == 1 -> false
rank
rank() => integer
حساب رتبة قيمة في مجموعة من القيم المحددة في ترتيب الإطار حسب العبارة. والنتيجة هي واحد زائد عدد الصفوف السابقة أو مساوية للصف الحالي في ترتيب القسم. تنتج القيم فجوات في التسلسل. تعمل الدالة rank حتى عندما لا تكون البيانات مرتبة، وتبحث عن تغير في القيم.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
تحويل مخطط عن طريق ربط المفاتيح بقيم جديدة. يتطلب دالة تعيين حيث يمكنك معالجة العنصر ك #key والقيمة الحالية ك #value.
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
تجميع العناصر في صفيف. تتوقع الدالة reduce إشارة إلى مجمع وعنصر واحد في دالة التعبير الأولى ك #acc و #item. يتوقع أن تستخدم القيمة الناتجة في #result دالة التعبير الثانية.
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
يستخرج سلسلة فرعية مطابقة لنمط ريجيكس معين. المعامل الأخير يحدد مجموعة المطابقة ويصبح 1 افتراضيا إذا تم حذفها. تستخدم <regex> لمطابقة وتر دون أن يفلت منه. مؤشر 0 يعيد جميع التطابقات. بدون مجموعات مطابقة، لا تعطي الفهرس 1 وما فوق أي نتيجة.
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
التحقق مما إذا كانت السلسلة تطابق نمط regex المحدد. تستخدم <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
يستبدل جميع حالات نمط الريجيكس بسلسلة فرعية أخرى في السلسلة المحددة. تستخدم <regex> لمطابقة وتر دون أن يفلت منه.
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
تقسيم سلسلة بناءً على محدد استناداً إلى regex وإرجاع صفيف سلاسل.
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
يستبدل جميع حالات سلسلة فرعية بسلسلة فرعية أخرى في السلسلة المحددة. إذا تم حذف المعامل الأخير، فإنه يتحول افتراضيا إلى سلسلة فارغة.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
عكس السلسلة.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
يستخرج سلسلة فرعية تحتوي على عدد من الأحرف من اليمين. نفس الشيء مثل SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
التحقق مما إذا كانت السلسلة تطابق نمط regex المحدد.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
يقرب رقما عند إعطاؤه مقياس اختياري ووضع تقريب اختياري. إذا تم حذف المقياس، فإنه يتحول افتراضيا إلى 0. إذا تم حذف الوضع، فإنه يتحول افتراضيا إلى ROUND_HALF_UP(5). تشمل القيم الخاصة بالتقريب ما يلي:
ROUND_UPوضع التقريب للتقريب بعيدا عن الصفر:
ROUND_DOWN: وضع التقريب للتقريب نحو الصفر.
ROUND_CEILINGوضع التقريب لتقريب نحو اللانهاية الموجبة. (تماما ROUND_UP كما لو أن المدخلات إيجابية. إذا كان سالبا، يتصرف كأنه ROUND_DOWN. على سبيل المثال، -1.1 سيكون -1.0 مع ROUND_CEILING و -2 مع ROUND_UP.)
ROUND_FLOORوضع التقريب للتقريب نحو اللانهاية السالبة. (تماما ROUND_DOWN كما لو أن المدخلات إيجابية. إذا كان سالبا، يتصرف كالتالي ROUND_UP.)
ROUND_HALF_UP: وضع التقريب للتقريب نحو "أقرب جار" ما لم يكن كلا الجارين متساويين المسافة، وفي هذه الحالة يتصرف ك ROUND_UP. (الأكثر شيوعا + الافتراضي لتدفق البيانات.)
ROUND_HALF_DOWNوضع التقريب لتقريب نحو "أقرب جار" ما لم يكن كلا الجارين متساويين المسافة، وفي هذه الحالة ROUND_DOWN.
ROUND_HALF_EVEN: وضع التقريب للتقريب نحو "أقرب جار" ما لم يكن كلا الجارين متساويين المسافة، وفي هذه الحالة، يدور نحو الجار المتساو.
ROUND_UNNECESSARY: وضع التقريب للتأكيد على أن عملية الجولة لها نتيجة دقيقة، لذا لا حاجة للتقريب.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
تعيين ترقيم صف تسلسلياً للصفوف في نافذة بدءاً من 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
يقوم الوسان الأيمن بالوتر بجانب الحشوة المرفقة حتى يصبح الوتر بطول معين. إذا كان الوتر مساويا أو أكبر من الطول، يتم قص الخيط حسب الطول.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
تقليص من جهة اليسار لسلسلة من الأحرف اللاحقة. إذا لم يكن المعامل الثاني محددا، فإنه يقص الفراغ الأبيض. وإلا، فإنه يقص أي حرف محدد في المعامل الثاني.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
الحصول على القيمة الثانية من تاريخ. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تستخدم المنطقة الزمنية المحلية كخيار افتراضي. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
second(toTimestamp('2009-07-30 12:58:59')) -> 59
seconds
seconds(<value1> : integer) => long
يعطي المدة بالمللي ثانية لعدد الثواني.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
يضبط مواقع البتات في هذه المجموعة.
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
يحسب ملخص SHA-1 لمجموعة من الأعمدة ذات أنواع بيانات بدائية مختلفة ويعيد سلسلة سداسية مكونة من 40 حرفا. يمكنك استخدامه لحساب بصمة الإصبع لصف.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
يحسب ملخص SHA-2 لمجموعة من الأعمدة ذات أنواع بيانات بدائية مختلفة عند إعطاء طول بت، والذي لا يمكن أن يكون إلا بقيم 0(256)، 224، 256، 384و 512. يمكنك استخدامه لحساب بصمة الإصبع لصف.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
حساب قيمة الجيب.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
حساب جيب الزاوية الزائدي.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
يحدد حجم المصفوفة أو نوع الخريطة.
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
الحصول على انحراف العمود.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
يحصل على انحراف العمود، بناء على المعايير.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
استخراج مجموعة فرعية من صفيف من موضع. الوظيفة تعتمد على 1. إذا تم حذف الطول، فإنه يتحول افتراضيا إلى نهاية السلسلة.
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
يرتب المصفوفة باستخدام دالة المسند المقدمة. تتوقع الدالة sort إشارة إلى عنصرين متتاليين في دالة التعبير ك #item1 و #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
الحصول على التعليمة البرمجية soundex للسلسلة.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
تقسيم سلسلة بناءً على محدد وإرجاع مصفوفة من السلاسل.
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
تحسب الجذر التربيعي لرقم.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
التحقق مما إذا كانت السلسلة تبدأ بالسلسلة المرفقة.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
الحصول على الانحراف المعياري للعمود.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
تحصل على الانحراف المعياري للعمود، بناء على المعايير.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
الحصول على الانحراف المعياري لمحتوى العمود.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
تحصل على الانحراف المعياري للسكان في عمود، بناء على المعايير.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
الحصول على نموذج الانحراف المعياري للعمود.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
تحصل على الانحراف المعياري النموذجي للعمود، بناء على المعايير.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
يطرح الأيام من تاريخ أو طابع زمني. نفس الشيء الذي يفعله المشغل - في التاريخ.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
يطرح الأشهر من تاريخ أو طابع زمني.
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
استخراج سلسلة فرعية بطول معين من موضع. الوظيفة تعتمد على 1. إذا تم حذف الطول، فإنه يتحول افتراضيا إلى نهاية السلسلة.
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(
<سلسلة لمجموعة><محدد>فرعية substringIndex( : string, : string, <count of delimiter occurrences> : integral]) = string>
يستخرج السلسلة الفرعية قبل ظهور عدد محدد الفاصل. إذا كان العد موجبا، يتم إرجاع كل ما يقع إلى يسار المحدد النهائي (العد من اليسار). إذا كان العد سالبا، يتم إرجاع كل ما يوجد إلى يمين محدد الفاصل النهائي (العد من اليمين).
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
الحصول على المجموع الكلي لعمود رقمي.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
الحصول على المجموع الكلي للقيم المميزة لعمود رقمي.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
يحصل على المجموع الكلي لعمود رقمي، بناء على المعايير. وقد يستند الشرط إلى أي عمود.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
يحصل على المجموع الكلي لعمود رقمي، بناء على المعايير. وقد يستند الشرط إلى أي عمود.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
حساب قيمة ظل الزاوية.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
حساب قيمة ظل الزاوية الزائدي.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
ترميز السلسلة النصية المحددة في base64. يمكنك اختيارياً تمرير نوع الترميز.
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
يحول أي رقم أو تاريخ أو طابع زمني أو نص نصي إلى تمثيل ثنائي.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
يحول قيمة (, , , , ) إلى صحيح و (f, false, n, 0no, ) إلى false ولأي NULL قيمة أخرى. 1yesytruet
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
تحويل أي رقم أو سلسلة إلى قيمة بايت. يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
يحول سلسلة تاريخ الإدخال إلى التاريخ باستخدام تنسيق تاريخ إدخال اختياري. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة. إذا تم حذف تنسيق تاريخ الإدخال، فإن الصيغة الافتراضية هي yyyy-[M]M-[d]d. الصيغ المقبولة هي :[ 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)
تحويل أي رقم أو سلسلة إلى قيمة عشرية. إذا لم يتم تحديد الدقة والمقياس، فإنه يتحول افتراضيا إلى (10,2). يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل. استخدم تنسيق الموقع الاختياري على شكل لغة BCP47 مثل 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
تحويل أي رقم أو سلسلة إلى قيمة مزودوجة. يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل. استخدم تنسيق الموقع الاختياري على شكل لغة BCP47 مثل 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
تحويل أي رقم أو سلسلة إلى قيمة معوم. يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل. اقتطاع أي مزدوج.
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
تحويل أي رقم أو سلسلة إلى قيمة عدد صحيح. يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل. اقتطاع أي قيمة طويلة، معوم، مزدوجة.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
تحويل أي رقم أو سلسلة إلى قيمة طويلة. يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل. اقتطاع أي معوم مزدوج.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
يحصل على أعلى N القيم لهذا العمود بناء على وسيط العد.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
تحويل أي رقم أو سلسلة إلى قيمة قصيرة. يمكنك استخدام تنسيق جافا العشري الاختياري للتحويل. اقتطاع أي عدد صحيح، طويل، معوم، مزدوج.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
يحول نوع بيانات بدائي إلى سلسلة نصية. يمكنك تحديد تنسيق للأرقام والتاريخ. إذا لم يتم تحديده، يتم اختيار النظام الافتراضي. يستخدم تنسيق جافا العشري للأرقام. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة. التنسيق الافتراضي هو yyyy-MM-dd. بالنسبة لتاريخ أو طابع زمني، يمكنك اختيار موقع محدد اختياريا.
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
يحول سلسلة إلى طابع زمني عند منحه صيغة اختتام زمني اختياري. إذا تم حذف الطابع الزمني، يستخدم النمط yyyy-[M]M-[d]d hh:mm:ss[.f...] الافتراضي. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. تدعم الدالة timestamp دقة تصل إلى ميلي ثانية بقيمة .999 راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
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
يحول الطابع الزمني إلى UTC. يمكنك المرور بمنطقة زمنية اختيارية على شكل GMT، PST، UTC، أو America/Cayman. يحسب الوضع الافتراضي للمنطقة الزمنية الحالية. راجع فئة SimpleDateFormat في جافا للصيغ المتاحة.
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
استبدل مجموعة واحدة من الأحرف بمجموعة أخرى من الأحرف في السلسلة. الشخصيات لها بديل فردي.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
تقليص سلسلة من الأحرف البادئة واللاحقة. إذا لم يكن المعامل الثاني محددا، فإنه يقص الفراغ الأبيض. وإلا، فإنه يقص أي حرف محدد في المعامل الثاني.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
إرجاع قيمة حقيقية دوماً. استخدم الدالة syntax(true()) إذا كان العمود يسمى true.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
مطابقة نوع العمود. يمكنك استخدامه فقط في تعبيرات النمط. الدالة number تطابق القصير أو الصحيح أو الطويل أو المزدوج أو العائم أو العشري. الدالة integral تطابق القصير والصحيح والطولي. الدالة fractional تطابق العدد المزدوج والعائم والعشري. تتطابق الدالة datetime مع نوع الطابع التاريخي أو الزماني.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
عدم إلغاء سلسلة وفقاً لتنسيق. القيم الحرفية للصيغ المقبولة هي json، xml، ecmascript، html، و java.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
فتح صفيف في مجموعة من الصفائف وتكرار قيم الأعمدة المتبقية في كل صف.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
إلغاء قيمة سداسية عشرية لقيمة ثنائية من تمثيل السلسلة. يمكنك استخدامه مع sha2، md5 لتحويل التمثيل من نص نصي إلى تمثيل ثنائي.
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
يعيد مجموعة اتحاد من العناصر المميزة من مصفوفتين.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
تكبير أحرف سلسلة.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
إرجاع UUID الذي تم إنشاؤه.
uuid()
V
variance
variance(<value1> : number) => double
الحصول على تباين العمود.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
يحصل على تباين عمود بناء على المعايير.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
الحصول على تباين المحتوى للعمود.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
يحصل على تباين السكان في عمود، بناء على المعايير.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
الحصول على التباين غير المتحيز للعمود.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
يحصل على تباين غير متحيز للعمود، بناء على المعايير.
varianceSampleIf(region == 'West', sales)
W
weekOfYear
weekOfYear(<value1> : datetime) => integer
يحصل على أسبوع السنة عندما يحدد تاريخا.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
يحصل على المدة بالمللي ثانية لعدد الأسابيع.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
يستخدم المؤثر المنطقي XOR . مثل عامل التشغيل ^.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
الحصول على قيمة السنة لتاريخ.
year(toDate('2012-8-8')) -> 2012
محتوى ذو صلة
- قائمة بجميع الوظائف المجمعة.
- قائمة بجميع وظائف المصفوفة.
- قائمة بجميع وظائف البحث المخزنة مؤقتًا.
- قائمة بجميع وظائف التحويل.
- قائمة بجميع دالات التاريخ والوقت.
- قائمة بجميع وظائف التعبير.
- قائمة بجميع وظائف الخريطة.
- قائمة بجميع الوظائف الوصفية.
- قائمة بجميع وظائف النافذة.
- تعلم كيفية استخدام Expression Builder.