وظائف Lambda

ينطبق على:التحقق الذي تم وضع علامة نعم عليه التحقق من Databricks SQL الذي تم وضع علامة عليه نعم Databricks Runtime

تعبير معلمات يمكن تمريره إلى دالة للتحكم في سلوكها.

على سبيل المثال، تقبل الدالة array_sort دالة lambda كوسيطة لتعريف ترتيب فرز مخصص.

بناء الجمله

{ param -> expr |
  (param1 [, ...] ) -> expr }

معلمات

  • paramN: معرف تستخدمه الدالة الأصل لتمرير وسيطات لدالة lambda.
  • expr: أي تعبير بسيط يشير إلى paramN، والذي لا يحتوي على استعلام فرعي أو دالة معرفة من قبل مستخدم SQL.

ارجاع

يتم تعريف نوع النتيجة بواسطة نوع exprنتيجة .

إذا كان هناك أكثر من واحد paramN، يجب أن تكون أسماء المعلمات فريدة. يتم تعيين أنواع المعلمات بواسطة دالة الاستدعاء. expression يجب أن يكون صالحا لهذه الأنواع ويجب أن يتطابق نوع النتيجة مع التوقعات المحددة لوظائف الاستدعاء.

امثله

تتوقع دالة array_sort دالة lambda بمعلمتين. ستكون أنواع المعلمات هي نوع عناصر الصفيف المراد فرزها. من المتوقع أن يرجع التعبير INTEGER حيث يعني param1<param2-1 و0 يعني param1 = param2و1 بخلاف ذلك.

لفرز صفيف سلسلة بترتيب معجمي من اليمين إلى اليسار، يمكنك استخدام الدالة lambda التالية.

(p1, p2) -> CASE WHEN p1 = p2 THEN 0
                 WHEN reverse(p1) < reverse(p2) THEN -1
                 ELSE 1 END

يتم تعريف دوال Lambda واستخدامها بشكل مخصص. لذلك تعريف الدالة هو الوسيطة :

> SELECT array_sort(array('Hello', 'World'),
  (p1, p2) -> CASE WHEN p1 = p2 THEN 0
              WHEN reverse(p1) < reverse(p2) THEN -1
              ELSE 1 END);
[World, Hello]