مشاركة عبر


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

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

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

تتضمن القائمة الأبجدية التالية جميع الوظائف المتاحة في تدفقات بيانات الخرائط.

A

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

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

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)
  • true
  • between(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']) ? 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

البحث عن مسار هرمي بالاسم في الدفق. يمكنك تمرير اسم تدفق اختياري كوسيطة ثانية. إذا لم يتم العثور على مثل هذا المسار، فإنه يعود 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')) -> 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 (الرقم % 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>: منطقي) => مصفوفة

الحصول على أسماء جميع أعمدة الإخراج الخاصة بالتدفق. يمكنك تمرير اسم دفق البيانات اختياري باعتباره الوسيطة الأولى. الوسيطة الثانية اختيارية أيضاً، حيث تكون القيمة 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(256224، 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(<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 في جافا للصيغ المتاحة.

  • 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