Aracılığıyla paylaş


İşlev çağırma

Şunlar için geçerlidir:check marked yes Databricks SQL check marked yes Databricks Runtime

İşlev çağrısı, bağımsız değişkenleri işlevin parametreleriyle ilişkilendirdikten sonra yerleşik bir işlevi veya kullanıcı tanımlı bir işlevi yürütür.

Azure Databricks hem konumsal parametre çağırmayı hem de adlandırılmış parametre çağırmayı destekler.

Konumsal parametre çağırma

Her bağımsız değişken, belirtilen konumda eşleşen parametreye atanır.

Bu gösterimi, adlandırılmış parametre çağırmanın gerekli olduğu açıkça belgelenmediği sürece tüm işlevler tarafından kullanılabilir.

İşlev isteğe bağlı parametreleri destekliyorsa, bağımsız değişken belirtilmemiş olan sondaki parametreler varsayılan olarak belirlenir.

Adlandırılmış parametre çağırma

Bağımsız değişkenler, işlev tarafından yayımlanan parametre adları kullanılarak parametrelere açıkça atanır.

Bu gösterimin, çok sayıda isteğe bağlı parametreye izin veren yerleşik işlevlerin belirli bir alt kümesi için kullanılması gerekir ve bu da konumsal parametre çağırmayı pratik hale getirir. Bu işlevler, öndeki bir parametre kümesinin konuma ve isteğe bağlı olarak ada göre parametre kümesinin atanması beklenen karışık bir çağrıya izin verebilir.

Karışık çağırma da dahil olmak üzere adlandırılmış parametre çağırma, SQL UDF ve Python UDF için de kullanılabilir.

Sözdizimi

function_name ( [ argExpr | table_argument | star_clause ] [, ...]
                [ namedParameter => [ argExpr | table_argument ] [, ...] )

table_argument
  { TABLE ( { table_name | query } )
    [ table_partition ]
    [ table_order ]

table_partitioning
  { WITH SINGLE PARTITION |
    { PARTITION | DISTRIBUTE } BY { partition_expr | ( partition_expr [, ...] ) } }

table_ordering
  { { ORDER | SORT } BY { order_by_expr | ( order_by_expr [, ...] } }

Parametreler

  • function_name

    Yerleşik veya kullanıcı tanımlı işlevin adı. Nitelenmemiş function_name bir Azure Databricks çözümlendiğinde önce yerleşik veya geçici bir işlevi, sonra da geçerli şemadaki bir işlevi dikkate alır.

  • argExpr

    İlişkili olduğu parametreye örtük olarak atanabilen herhangi bir ifade.

    işlevi sabit değerleri, sabit ifadeleri veya belirli değerleri mandating gibi bağımsız değişken üzerinde daha fazla kısıtlama uygulayabilir.

  • star_clause

    Yan tümcesindeki tüm başvurulabilir sütunları veya yan tümcedeki FROM belirli bir tablo başvurusunun sütunlarını veya alanlarını adlandırmak FROM için bir kısaltma.

  • table_argument

    ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks SQL ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks Runtime 14.0 ve üzeri)

    Tablo olan bir parametre için bağımsız değişken belirtir.

    • TABLE ( table_name )

      İşleve ada göre geçirecek bir tablo tanımlar.

    • TABLE ( sorgu )

      sonucunu query işleve geçirir.

    • tablo bölümleme

      ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks SQL ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks Runtime 14.1 ve üzeri)

      İsteğe bağlı olarak tablo bağımsız değişkeninin bölümlendiğini belirtir. Belirtilmezse bölümleme Azure Databricks tarafından belirlenir.

      • WITH SINGLE PARTITION

        Tablo bağımsız değişkeni bölümlenmez.

      • partition_expr

        Tablo bağımsız değişkenini bölümlemeyi tanımlayan bir veya daha fazla ifade. Her ifade tablo bağımsız değişkeninde, değişmez değerlerde, parametrelerde, değişkenlerde ve belirleyici işlevlerde bulunan sütunlardan oluşabilir.

    • table-ordering

      ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks SQL ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks Runtime 14.1 ve üzeri)

      İsteğe bağlı olarak, tablo bağımsız değişkeninin her bölümünün sonuç satırlarının işleve geçirildiği sırayı belirtir.

      Varsayılan olarak, sipariş tanımlanmamıştır.

      • order_by_expr

        Bir veya daha fazla ifade. Her ifade tablo bağımsız değişkeninde, değişmez değerlerde, parametrelerde, değişkenlerde ve belirleyici işlevlerde bulunan sütunlardan oluşabilir.

  • namedParameter

    ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks SQL ! [onay işareti evet] (.. /.. /_static/images/icons/check.png Databricks Runtime 14.0 ve üzeri)

    atandığı argExpr parametrenin nitelenmemiş adı.

    Adlandırılmış parametre gösterimi SQL UDF, Python UDF ve belirli yerleşik işlevler için desteklenir.

Örnekler

-- The substr function has three parameter and expects arguents to be passed by position.
> SELECT substr('hello', 3, 2);
  ll

-- The last parameter, the length, of substr is optional, when it is ommited it retrns the remainder of the string.
> SELECT substr('hello', 3);
  llo

-- Use the star clause to turn a set of columns into an array.
> SELECT array(*) FROM VALUES (1, 2, 3) AS t(a, b, c);
  [1, 2, 3]

-- The second parameter, start position, is not optional
> SELECT substr('hello');
  Error: WRONG_NUM_ARGS

-- read_files() is a function that accepts numerous parameters, many of which depend on the data source
-- The first parameter is positional, after that use named parameter invocation
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv',
    schema => 'id int, ts timestamp, event string');

-- cloud_files_state() is a function that expects a table name as an argument
> SELECT path FROM cloud_files_state(TABLE(mytable));
  /some/input/path
  /other/input/path

-- Invoking a SQL UDF using named parameter invocation
> CREATE TEMPORARY FUNCTION increase(base INT, factor FLOAT DEFAULT 1) RETURNS INT RETURN base * factor;

-- Out of order assignment
> SELECT increase(factor => 1.2, base => 100);
 120

-- Mixed invocation
> SELECT increase(100, factor => 1.3);
 130

-- Using default
> SELECT increase(base => 100);
 100

-- No position invocation after named invocation is allowed
> SELECT increase(base => 100, 1.4);
 Error: UNEXPECTED_POSITIONAL_ARGUMENT