Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Databricks SQL
Databricks Runtime
Pemanggilan fungsi menjalankan fungsi bawaan atau fungsi yang ditentukan pengguna setelah mengaitkan argumen ke parameter fungsi.
Azure Databricks mendukung pemanggilan parameter secara posisi maupun secara bernama.
Pemanggilan parameter posisi
Setiap argumen ditetapkan ke parameter yang cocok pada posisi yang ditentukan.
Notasi ini dapat digunakan oleh semua fungsi kecuali jika secara eksplisit didokumentasikan bahwa pemanggilan parameter bernama diperlukan.
Jika fungsi mendukung parameter opsional, parameter berikut yang tidak mendapatkan argumen akan diatur ke nilai default.
Pemanggilan parameter bernama
Argumen secara eksplisit ditetapkan ke parameter menggunakan nama parameter yang diterbitkan oleh fungsi.
Notasi ini harus digunakan untuk subset tertentu dari fungsi bawaan yang memungkinkan banyak parameter opsional, membuat pemanggilan parameter posisi tidak praktis. Fungsi-fungsi ini dapat memungkinkan pemanggilan campuran di mana sekumpulan parameter yang mendahului diharapkan ditetapkan berdasarkan posisi dan serangkaian parameter yang mengikuti, secara opsional, ditetapkan berdasarkan nama.
Pemanggilan parameter bernama, termasuk pemanggilan campuran, juga dapat digunakan untuk SQL UDF dan Python UDF.
Sintaks
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 [, ...] } }
Parameter
-
Nama fungsi bawaan atau yang ditentukan pengguna. Ketika menyelesaikan
function_name
yang tidak memenuhi kualifikasi, Azure Databricks pertama-tama akan mempertimbangkan fungsi bawaan atau sementara, kemudian fungsi dalam skema yang sedang aktif. -
Ekspresi apa pun yang dapat secara implisit ditransmisikan ke parameter yang terkait dengannya.
Fungsi ini dapat memberlakukan pembatasan lebih lanjut pada argumen seperti mengamanatkan literal, ekspresi konstanta, atau nilai tertentu.
-
Singkatan untuk memberi nama semua kolom yang dapat dirujuk dalam
FROM
klausa, atau kolom atau bidang referensi tabel tertentu dalamFROM
klausa. tabel_argumen
Databricks SQL
Databricks Runtime 14.0 dan seterusnya
Menentukan argumen untuk parameter yang merupakan tabel.
TABLE
( table_name )Mengidentifikasi tabel untuk diteruskan ke fungsi berdasarkan nama.
TABLE
( kueri )Meneruskan hasil
query
ke fungsi .pemartisian tabel
Databricks SQL
Databricks Runtime 14.1 ke atas
Secara opsional menentukan bahwa argumen tabel dipartisi. Jika tidak ditentukan, pemartisian ditentukan oleh Azure Databricks.
WITH SINGLE PARTITION
Argumen tabel tidak dipartisi.
-
Satu atau beberapa ekspresi yang menentukan cara mempartisi argumen tabel. Setiap ekspresi dapat terdiri dari kolom yang disajikan dalam argumen tabel, literal, parameter, variabel, dan fungsi deterministik.
table-ordering
Databricks SQL
Databricks Runtime 14.1 ke atas
Secara opsional menentukan urutan di mana baris hasil dari setiap partisi argumen tabel diteruskan ke fungsi.
Secara default, urutan tidak terdefinisi.
-
Satu atau beberapa ekspresi. Setiap ekspresi dapat terdiri dari kolom yang disajikan dalam argumen tabel, literal, parameter, variabel, dan fungsi deterministik.
-
-
Databricks SQL
Databricks Runtime 14.0 dan seterusnya
Nama tidak memenuhi syarat dari parameter yang
argExpr
ditetapkan.Notasi parameter dengan nama didukung untuk SQL UDF, Python UDF, dan fungsi bawaan tertentu.
Contoh
-- 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