Lambda işlevleri

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL denetimi yes Databricks Runtime olarak işaretlendi

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

Örneğin , array_sort işlevi özel bir 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 }

Parametre

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

Döndürür

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 iki parametreli bir lambda işlevi bekler. Parametre türleri, sıralanacak dizinin öğelerinin türü olacaktır. İfadenin bir INTEGER döndürmesi beklenir; burada -1 param1<param2, , 0, , ve 1 anlamına gelir param1 = param2.

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ı bağımsız değişkendir:

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