Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime
tablo başvurusu olarak bir ilişkiyi veya satır kümesini döndüren bir işlevçağırır.
TVF şu olabilir:
SQL kullanıcı tanımlı tablo işlevi.
aralığı tablo değerli işlevi.
explode gibi tablo değerli oluşturucu işlevleri. Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri.Parametreli ölçüm görünümü.
Şunun için geçerlidir:
Databricks SQL denetimi yes Databricks Runtime 18.2 ve üzeri
.Important
Bu özellik Genel Önizleme aşamasındadır.
Not
Hive UDTF tablo başvurusu olarak çağrılamaz; SELECT veya LATERAL VIEW yan tümcesiyle çağrılmalıdır.
Sözdizimi
function_name ( [ expression [, ...] ] ) [ table_alias ]
Parametreler
-
Tablo değerli bir işlev. İşlev tablo değerli bir işlev olarak çözümlenemiyorsa Azure Databricks UNRESOLVABLE_TABLE_VALUED_FUNCTION oluşturur.
-
Bir veya daha fazla değerin, işleçlerin ve SQL işlevlerinin bir bileşimidir ve bu da bir değere neden olur.
-
İşlev sonucuna ve sütunlarına başvurmak için isteğe bağlı bir etiket.
Yaygın hata koşulları
- NUM_TABLE_VALUE_ALIASES_MISMATCH
- UNRESOLVABLE_TABLE_VALUED_FUNCTION
- WRONG_NUM_ARGS. WITHOUT_SUGGESTION
Örnekler
-- range call with end
> SELECT * FROM range(6 + cos(3));
0
1
2
3
4
-- range call with start and end
> SELECT * FROM range(5, 10);
5
6
7
8
9
-- range call with numPartitions
> SELECT * FROM range(0, 10, 2, 200);
0
2
4
6
8
-- range call with a table alias
> SELECT * FROM range(5, 8) AS test;
5
6
7
-- Create a SQL UDTF and invoke it
> CREATE OR REPLACE FUNCTION table_func(a INT) RETURNS TABLE
RETURN SELECT a * c1 AS res FROM VALUES(1), (2), (3), (4) AS T(c1)
> SELECT * FROM table_func(5);
5
10
15
20
-- Using lateral correlation
> SELECT table_func.res FROM VALUES(10), (20) AS S(c1), LATERAL table_func(c1);
10
20
20
40
30
60
40
80
-- Scalar functions are not allowed in the FROM clause
> SELECT * FROM trim('hello ');
Error: UNRESOLVABLE_TABLE_VALUED_FUNCTION
Databricks SQL ve Databricks Runtime 12.2 LTS ve üzeri üzerinde:
> SELECT * FROM explode(array(10, 20));
10
20
> SELECT * FROM inline(array(struct(1, 'a'), struct(2, 'b')));
col1 col2
---- ----
1 a
2 b
> SELECT * FROM posexplode(array(10,20));
pos col
--- ---
0 10
1 20
> SELECT * FROM stack(2, 1, 2, 3);
col0 col1
---- ----
1 2
3 null
> SELECT * FROM json_tuple('{"a":1, "b":2}', 'a', 'b');
c0 c1
--- ---
1 2
> SELECT * FROM parse_url('http://spark.apache.org/path?query=1', 'HOST');
spark.apache.org
> SELECT * FROM VALUES(1), (2) AS t1(c1), LATERAL explode (ARRAY(3,4)) AS t2(c2);
c1 c2
-- --
1 3
1 4
2 3
2 4
Databricks SQL ve Databricks Runtime 18.2 ve üzerinde, parametreli ölçüm görünümünü tablo değerli bir işlev olarak çağırabilirsiniz. Her parametreyi adlandırılmış bağımsız değişken olarak geçirin veya her parametrenin bir parametresi olduğunda varsayılanları kullanmak için bağımsız değişkenleri atlar. Parametre tanımlayan adlı discounted_sales_metrics ölçüm görünümü için discount :
-- Pass a named argument
> SELECT order_priority, measure(discounted_revenue)
FROM discounted_sales_metrics(discount => 0.15)
GROUP BY ALL;
-- Omit the arguments to use the parameter defaults
> SELECT order_priority, measure(discounted_revenue)
FROM discounted_sales_metrics
GROUP BY ALL;