Lambda işlevleri
Şunun için geçerlidir: Databricks SQL denetimi yes Databricks Runtime
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şvuranparamN
herhangi bir basit ifade.
Döndürür
Sonuç türü, sonuç türü expr
tarafından tanımlanır.
Birden paramN
fazla 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]