استخدام تعبير تحويل البيانات في تعيين تدفق البيانات

ينطبق على:Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

تتوفر تدفقات البيانات في كل من Azure Data Factory وخطوط أنابيب Azure Synapse. تنطبق هذه المقالة على تعيين تدفقات البيانات. إذا كنت جديداً في مجال التحويلات، فيرجى الرجوع إلى المقالة التمهيدية تحويل البيانات باستخدام تدفق بيانات التعيين.

توفر المقالات التالية تفاصيل حول استخدام جميع التعبيرات والوظائف التي يدعمها Azure Data Factory وAzure Synapse Analytics في تعيين تدفقات البيانات. للحصول على ملخصات لكل نوع من الوظائف المدعومة، ارجع إلى المقالات التالية:

قائمة أبجدية لجميع الدالات

فيما يلي قائمة أبجدية لجميع الدالات المتاحة في تعيين تدفقات البيانات.

ش

abs

abs(<value1> : number) => number

القيمة المطلقة للعدد.

  • abs(-20) -> 20
  • abs(10) -> 10

acos

acos(<value1> : number) => double

حساب قيمة معكوسة جيب التمام.

  • acos(1) -> 0.0

add

add(<value1> : any, <value2> : any) => any

إضافة زوج من السلاسل أو الأرقام. إضافة تاريخ إلى عدد من الأيام. إضافة مدة إلى طابع زمني. إلحاق صفيف واحد من نوع مشابه إلى آخر. مثل + عامل التشغيل.

  • 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

إضافة أيام إلى تاريخ أو طابع زمني. مثل + عامل تشغيل للتاريخ.

  • 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) -> false
  • true && 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') -> 65
  • ascii('a') -> 97

asin

asin(<value1> : number) => double

حساب قيمة معكوسة جيب الزاوية.

  • asin(0) -> 0.0

assertErrorMessages

assertErrorMessages() => map

يُرجع مخططاً لجميع رسائل الخطأ للصف ذي معرف التأكيد باعتباره المفتاح.

الأمثلة

  • 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)

مضمن

between

between(<value1> : any, <value2> : any, <value3> : any) => boolean

التحقق مما إذا كانت القيمة الأولى تقع بين قيمتين أخريين بشكلٍ شامل. إمكانية مقارنة القيم الرقمية والسلسلة والتاريخ والوقت

  • between(10, 5, 24)
  • true
  • between(currentDate(), currentDate() + 10, currentDate() + 20)
  • false

bitwiseAnd

bitwiseAnd(<value1> : integral, <value2> : integral) => integral

معالجة البت وعامل التشغيل عبر أنواع متكاملة. مثل & عامل التشغيل

  • bitwiseAnd(0xf4, 0xef)
  • 0xe4
  • (0xf4 & 0xef)
  • 0xe4

bitwiseOr

bitwiseOr(<value1> : integral, <value2> : integral) => integral

معالجة البت أو عامل التشغيل عبر أنواع متكاملة. مثل | المشغل

  • bitwiseOr(0xf4, 0xef)
  • 0xff
  • (0xf4 | 0xef)
  • 0xff

bitwiseXor

bitwiseXor(<value1> : any, <value2> : any) => any

معالجة البت أو عامل التشغيل عبر أنواع متكاملة. مثل | المشغل

  • 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. يجب تحويل القيمة التي تم إرجاعها بواسطة أحد أنواع تحويل ‎actions(? 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']) ? 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

تحديد قيمة العمود حسب الاسم في تدفق الأصل. الوسيطة الثانية هي اسم تدفق الأصل. إذا كان هناك العديد من حالات التطابق، يتم إرجاع التطابق الأول. إذا لم يكن هناك تطابق، فيتم إرجاع قيمة 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

البحث عن مسار هرمي بالاسم في الدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. إذا لم يتم العثور على مثل هذا المسار، فسيتم إرجاعه خالياً. يجب معالجة أسماء/مسارات الأعمدة المعروفة في وقت التصميم فقط من خلال الاسم أو مسار التدوين النقطي. المدخلات المحسوبة غير مدعومة ولكن يمكنك استخدام بدائل المعلمات.

  • 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

بناءً على الشروط المتناوبة، يتم تطبيق قيمة واحدة أو أخرى. إذا كان عدد المدخلات زوجياً، فسيتم تعيين الآخر افتراضياً على 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')) -> true
  • case(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(number ٪ 256)

  • char(65) -> 'A'
  • char(97) -> 'a'

coalesce

coalesce(<value1> : any, ...) => any

إرجاع القيمة الأولى غير الفارغة من مجموعة إدخالات. يجب أن تكون جميع الإدخالات من نفس النوع.

  • coalesce(10, 20) -> 10
  • coalesce(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> : boolean) => array

الحصول على أسماء جميع أعمدة الإخراج الخاصة بالتدفق. يمكنك تمرير اسم دفق البيانات اختياري باعتباره الوسيطة الأولى. الوسيطة الثانية اختيارية أيضاً، حيث تكون القيمة false هي القيمة الافتراضية. إذا قمت بتعيين الوسيطة الثانية على true()، فستقوم ADF(ملف تعريف التطبيق) بإرجاع الأعمدة التي تنجرف فقط عبر انحراف المخطط.

  • 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

إرجاع صحيح إذا تم تقييم أي عنصر في الصفيف المقدم على أنه صحيح في المسند المقدم. يحتوي على توقع مرجع إلى عنصر واحد في دالة التقييم مثل #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

الحصول على العدد الإجمالي للقيم. إذا تم تحديد العمود (الأعمدة) الاختيارية، فإنه يتجاهل القيم الخالية في العدد.

  • 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

بناءً على معيار، يتم الحصول على العدد الإجمالي للقيم. إذا تم تحديد العمود الاختياري، فإنه يتجاهل القيم الخالية في العدد.

  • 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 Java للتعرف على التنسيقات المتاحة. 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

الحصول على الطابع الزمني الحالي عند بدء العمل بالمنطقة الزمنية المحلية.

  • currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false

currentUTC

currentUTC([<value1> : string]) => timestamp

الحصول على الطابع الزمني الحالي كـ UTC. إذا كنت تريد تفسير وقتك الحالي في منطقة زمنية مختلفة عن المنطقة الزمنية لمجموعتك، فيمكنك تمرير منطقة زمنية اختيارية على شكل "GMT"، و"PST" و"UTC" و"America/Cayman". تم تعيينه افتراضيًا على المنطقة الزمنية الحالية. راجع فئة SimpleDateFormat Java للتعرف على التنسيقات المتاحة. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. لتحويل التوقيت العالمي المنسق إلى منطقة زمنية مختلفة، استخدم 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" و"ISO-8859-1" و"UTF-8" (افتراضي) و"UTF-16BE" و"UTF-16LE" و"UTF-16"

  • decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc

degrees

degrees(<value1> : number) => double

تحويل التقدير الدائري إلى درجات.

  • degrees(3.141592653589793) -> 180

denseRank

denseRank() => integer

حساب رتبة قيمة في مجموعة من القيم المحددة في ترتيب الإطار حسب العبارة. والنتيجة هي واحد زائد عدد الصفوف السابقة أو مساوية للصف الحالي في ترتيب القسم. لن تنتج القيم فجوات في التسلسل. يعمل Dense Rank حتى عندما لا يتم فرز البيانات ويبحث عن التغيير في القيم.

  • 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" و"ISO-8859-1" و"UTF-8" (افتراضي) و"UTF-16BE" و"UTF-16LE" و"UTF-16"

  • encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))

سلسلة الإدخال: سلسلة، Charset: سلسلة) => ثنائي

endsWith

endsWith(<string> : string, <substring to check> : string) => boolean

التحقق مما إذا كانت السلسلة تنتهي بالسلسلة المرفقة.

  • endsWith('dumbo', 'mbo') -> true

equals

equals(<value1> : any, <value2> : any) => boolean

المقارنة تساوي عامل التشغيل. مثل == عامل التشغيل.

  • 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" و"ecmascript" و"html" و"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 Java للتعرف على التنسيقات المتاحة. 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

مقارنة عامل تشغيل الأكبر. نفس عامل التشغيل >.

  • 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

للتحقق مما إذا كان التأكيد مع المعرف المقدم قد تم تمييزه على أنه خطأ.

الأمثلة

  • 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 Java للتعرف على التنسيقات المتاحة. 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

المدة بالملّي ثانية لعدد الساعات.

  • 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

عند وجود مدخلين أو أكثر، يتم إرجاع العنصر الأول غير الفارغ. هذه الدالة تعادل الاندماج.

  • 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 الخاص بـ Java لمعرفة التنسيقات المتاحة. إذا تم حذف تنسيق تاريخ الإدخال، فإن التنسيق الافتراضي هو 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

التحقق مما إذا كانت القيمة فارغة.

  • 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 الخاص بـ Java لمعرفة التنسيقات المتاحة. إذا تم حذف الطابع الزمني، فسيتم استخدام النمط الافتراضي yyyy-[M]M-[d]d hh:mm:ss[.f...]. يمكنك تمرير منطقة زمنية اختيارية في شكل "GMT" و"PST" و"UTC" و"America/Cayman". يدعم الطابع الزمني دقة تصل إلى ملّي ثانية بقيمة 999، ارجع إلى تنسيق SimpleDateFormat الخاص بـ Java للتعرف على التنسيقات المتاحة.

  • 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

أ

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. إذا لم يكن يوجد العديد من السجلات، يتم إرجاع قيمة خالية ما لم يتم تحديد قيمة افتراضية.

  • 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. إذا لم يكن يوجد العديد من السجلات، يتم إرجاع قيمة خالية ما لم يتم تحديد قيمة افتراضية.

  • 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 بعدد الأحرف. مثل BSTRING(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

مقارنة عامل تشغيل أقل. نفس عامل التشغيل <.

  • 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

حساب قيمة السجل. يمكن توفير قاعدة اختيارية أخرى رقم Euler إذا تم استخدامه.

  • 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

تعيين كل عنصر من عناصر الصفيف إلى عنصر جديد باستخدام التعبير المقدم. يتوقع التعيين مرجع إلى عنصر واحد في دالة التعبير مثل #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

تعيين كل عنصر من عناصر الصفيف إلى عنصر جديد باستخدام التعبير المقدم. يتوقع التعيين مرجعاً إلى عنصر واحد في دالة التعبير مثل #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

الحصول على متوسط قيم عمود. مثل متوسط.

  • 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 Java للتعرف على التنسيقات المتاحة. 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

المدة بالملّي ثانية لعدد من الملّي ثانية.

  • 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 Java للتعرف على التنسيقات المتاحة. 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

المدة بالملّي ثانية لعدد الدقائق.

  • 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 Java للتعرف على التنسيقات المتاحة. 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

ضرب زوج من الأعداد. مثل عامل التشغيل *.

  • 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

تطبيع قيمة السلسلة لفصل أحرف unicode المعلمة.

  • 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

إرجاع قيمة فارغة. استخدم الدالة 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) => long

إرجاع رقم عشوائي بمنحه قيمة اختيارية داخل أحد الأقسام. يجب أن تكون النسخ الاحتياطية ذات قيمة ثابتة وتستخدم مع partitionId لإنتاج قيم عشوائية

  • random(1) == 1 -> false

rank

rank() => integer

حساب رتبة قيمة في مجموعة من القيم المحددة في ترتيب الإطار حسب العبارة. والنتيجة هي واحد زائد عدد الصفوف السابقة أو مساوية للصف الحالي في ترتيب القسم. سوف تنتج القيم فجوات في التسلسل. يعمل الترتيب حتى عندما لا يتم فرز البيانات ويبحث عن التغيير في القيم.

  • 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

تجميع العناصر في صفيف. يتوقع التقليل مرجعاً لمُجمَّع وعنصر واحد في دالة التعبير الأولى مثل #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

استخراج سلسلة فرعية مطابقة لنمط regex محدد. تحدد المعلمة الأخيرة مجموعة المطابقة وتكون افتراضياً على 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 بسلسلة فرعية أخرى في السلسلة المحددة استخدم <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(<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). تتضمن قيم التقريب

  1. ROUND_UP - وضع التقريب للتقريب بعيدا عن الصفر.
  2. ROUND_DOWN - وضع التقريب للتقريب نحو الصفر.
  3. ROUND_CEILING - وضع التقريب للتقريب نحو اللانهاية الإيجابية. [مثل ROUND_UP إذا كان الإدخال موجبا. إذا كان سالبا، يتصرف ك ROUND_DOWN. على سبيل المثال = -1.1 سيكون -1.0 مع ROUND_CEILING و-2 مع ROUND_UP]
  4. ROUND_FLOOR - وضع التقريب للتقريب نحو اللانهاية السلبية. [مثل ROUND_DOWN إذا كان الإدخال موجبا. إذا كانت سالبة، تتصرف كما ROUND_UP]
  5. ROUND_HALF_UP - وضع التقريب للتقريب نحو "أقرب جار" ما لم يكن كلا الجارين متساويين، وفي هذه الحالة ROUND_UP. [الأكثر شيوعا + الافتراضي لتدفق البيانات].
  6. ROUND_HALF_DOWN - وضع التقريب للتقريب نحو "أقرب جار" ما لم يكن كلا الجارين متساويين، وفي هذه الحالة ROUND_DOWN.
  7. ROUND_HALF_EVEN - وضع التقريب للتقريب نحو "أقرب جار" ما لم يكن كلا الجارين متساويين، وفي هذه الحالة، تقريب نحو الجار حتى.
  8. 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 Java للتعرف على التنسيقات المتاحة. 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

المدة بالملّي ثانية لعدد الثواني.

  • 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

فرز الصفيف باستخدام دالة التقييم المتوفرة. يتوقع الفرز مرجعاً إلى عنصرين متتاليين في دالة التعبير #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( : سلسلة، : سلسلة، <عدد حالات حدوث> المحدد : متكامل]) => سلسلة

استخراج السلسلة الفرعية قبل حالات count للمحدد. إذا كان count إيجابيًا، يتم إرجاع كل شيء إلى يسار المحدد النهائي (العد من اليسار). إذا كان count سلبيًا، يتم إرجاع كل شيء على يمين المحدد النهائي (العد من اليمين).

  • 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

تحويل قيمة ('t', 'true', 'y', 'yes', '1') إلى true و('f', 'false', 'n', 'no', '0') إلى false وNULL إلى أي قيمة أخرى.

  • toBoolean('true') -> true
  • toBoolean('n') -> false
  • isNull(toBoolean('truthy')) -> true

toByte

toByte(<value> : any, [<format> : string], [<locale> : string]) => byte

تحويل أي رقم أو سلسلة إلى قيمة بايت. يمكن استخدام تنسيق Java العشري الاختياري للتحويل.

  • toByte(123)
  • 123
  • toByte(0xFF)
  • -1
  • toByte('123')
  • 123

toDate

toDate(<string> : any, [<date format> : string]) => date

تحويل سلسلة تاريخ الإدخال إلى تاريخ باستخدام تنسيق تاريخ إدخال اختياري. راجع فئة SimpleDateFormat Java للتعرف على التنسيقات المتاحة. إذا تم حذف تنسيق تاريخ الإدخال، فإن التنسيق الافتراضي هو 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). يمكن استخدام تنسيق Java العشري الاختياري للتحويل. تنسيق لغة اختيارية في شكل لغة 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

تحويل أي رقم أو سلسلة إلى قيمة مزودوجة. يمكن استخدام تنسيق Java العشري الاختياري للتحويل. تنسيق لغة اختيارية في شكل لغة 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

تحويل أي رقم أو سلسلة إلى قيمة معوم. يمكن استخدام تنسيق Java العشري الاختياري للتحويل. اقتطاع أي مزدوج.

  • 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

تحويل أي رقم أو سلسلة إلى قيمة عدد صحيح. يمكن استخدام تنسيق Java العشري الاختياري للتحويل. اقتطاع أي قيمة طويلة، معوم، مزدوجة.

  • toInteger(123) -> 123
  • toInteger('123') -> 123
  • toInteger('$123', '$###') -> 123

toLong

toLong(<value> : any, [<format> : string], [<locale> : string]) => long

تحويل أي رقم أو سلسلة إلى قيمة طويلة. يمكن استخدام تنسيق Java العشري الاختياري للتحويل. اقتطاع أي معوم مزدوج.

  • 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

تحويل أي رقم أو سلسلة إلى قيمة قصيرة. يمكن استخدام تنسيق Java العشري الاختياري للتحويل. اقتطاع أي عدد صحيح، طويل، معوم، مزدوج.

  • toShort(123) -> 123
  • toShort('123') -> 123
  • toShort('$123', '$###') -> 123

toString

toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string

تحويل نوع بيانات أولي إلى سلسلة. بالنسبة للأرقام والتواريخ، يمكن تحديد تنسيق. إذا لم يتم تحديد الإعداد الافتراضي للنظام، فسيتم اختيار تنسيق Java العشري للأرقام. الرجوع إلى Java 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". يدعم الطابع الزمني دقة تصل إلى ملّي ثانية بقيمة 999. راجع فئة SimpleDateFormat Java للتعرف على التنسيقات المتاحة. 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

تحويل الطابع الزمني إلى UTC. يمكنك تمرير منطقة زمنية اختيارية في شكل "GMT" و"PST" و"UTC" و"America/Cayman". تم تعيينه افتراضيًا على المنطقة الزمنية الحالية. راجع فئة SimpleDateFormat Java للتعرف على التنسيقات المتاحة. 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

استبدل مجموعة واحدة من الأحرف بمجموعة أخرى من الأحرف في السلسلة. استبدال الأحرف 1 إلى 1.

  • 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

مطابقة نوع العمود. يمكن استخدامه فقط في نمط expressions.number الذي يتطابق مع القيم القصيرة، والعدد الصحيح، والقيم الطويلة، والمزدوجة، والمعوم أو العشري الذي يتطابق مع القيم القصيرة، والعدد الصحيح، والقيم الطويلة، والكسور التي تتطابق مع القيم المزدوجة، والمعوم، والقيم العشرية وتحدد مدى مطابقة نوع التاريخ أو الطابع الزمني.

  • 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

س

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