Aracılığıyla paylaş


Lambda işlevleri

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Davranışını denetlemek için işleve geçirilebilen parametreli ifade.

Örneğin, array_sort işlevi özel sıralama düzeni tanımlamak için bir lambda işlevini bağımsız değişken olarak kabul eder.

Sözdizimi

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

Parametreler

  • paramN: Lambda işlevinin bağımsız değişkenlerini geçirmek için üst işlev tarafından kullanılan bir tanımlayıcı.
  • expr: paramN öğesine başvuran, bir alt sorgu veya SQL kullanıcı tanımlı işlevi içermeyen herhangi bir basit ifade.

İadeler

Sonuç türü, sonuç türü exprtarafından tanımlanır.

Birden paramNfazla varsa, parametre adları benzersiz olmalıdır. Parametre türleri, çağırma işlevi tarafından ayarlanır. expression bu türler için geçerli olmalıdır ve sonuç türü çağırma işlevlerinin tanımlı beklentileriyle eşleşmelidir.

Örnekler

array_sort işlevi işlevi iki parametreli bir lambda işlevi bekler. Parametre türleri, sıralanacak dizinin öğelerinin türü olacaktır. İfadenin bir TAMSAYı döndürmesi beklenir; -1 param1<param2anlamına gelir, 0, param1 = param2anlamına gelir ve diğer tüm değerler 1 anlamına gelir.

STRING dizisini sağdan sola sözcük düzeninde sıralamak için aşağıdaki lambda işlevini kullanabilirsiniz.

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

Lambda işlevleri tanımlanır ve geçici olarak kullanılır. Bu nedenle işlev tanımı, argümandır:

> 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]