內建函式
適用於:Databricks SQL Databricks Runtime
本文提供字串和二進位類型、數值純量、彙總、windows、陣列、地圖、日期和時間戳記、轉型、CSV 資料、JSON 資料、XPath 操作和其他函式之內建運算子和函式的連結和描述。
針對現有內建函式不支援的使用案例,請考慮定義自訂函式。 請參閱什麼是使用者定義函式 (UDF)?。
另請參閱:
運算子和述詞
如需如何相互剖析運算子的相關資訊,請參閱運算子優先順序。
Operator | 語法 | 描述 |
---|---|---|
& | expr1 & expr2 |
傳回 AND 和 expr1 的位元運算 expr2 。 |
and | expr1 and expr2 |
傳回 AND 和 expr1 的邏輯 expr2 。 |
* | multiplier * multiplicand |
傳回 multiplier 乘以 multiplicand 。 |
!= | expr1 != expr2 |
如果 expr1 不等於 expr2 ,則傳回 true,否則傳回 false 。 |
! | !expr |
傳回布林運算式的邏輯 NOT 。 |
between | expr1 [not] between expr2 and expr2 |
測試 expr1 是否大於或等於 expr2 ,且小於或等於 expr3 。 |
[ ] | arrayExpr [ indexExpr ] |
傳回 indexExpr ARRAY 的第 arrayExpr 項元素。 |
[ ] | mapExpr [ keyExpr ] |
傳回 keyExpr MAP 的 mapExpr 值。 |
^ | expr1 ^ expr2 |
傳回 OR (XOR) 和 expr1 的位元運算排除 expr2 。 |
: | jsonStr : jsonPath |
傳回從 jsonStr 擷取的欄位。 |
:: | expr :: type |
將值 expr 轉換成目標資料類型 type 。 |
?:: | expr ?:: type |
如果可能,將值 expr 轉換為目標資料類型 type ,否則傳回 NULL 。 |
div | dividend div divisor |
傳回 dividend 除以 divisor 的整數部分。 |
. | mapExpr . keyIdentifier |
以 MAP 傳回 keyIdentifier 值。 |
. | structExpr . fieldIdentifier |
以 STRUCT 傳回 fieldIdentifier 欄位。 |
== | expr1 == expr2 |
如果 true 等於 expr1 ,則傳回 expr2 ,否則傳回 false 。 |
= | expr1 = expr2 |
如果 true 等於 expr1 ,則傳回 expr2 ,否則傳回 false 。 |
>= | expr1 >= expr2 |
若 true 大於或等於 expr1 則傳回 expr2 ,否則傳回 false |
> | expr1 > expr2 |
如果 true 大於 expr1 ,則傳回 expr2 ,否則傳回 false 。 |
exists | exists(query) |
如果 query 傳回至少一個資料列,則傳回 true,否則傳回 false。 |
ilike | str [not] ilike (pattern[ESCAPE escape]) |
如果 str 在 pattern 不區分大小寫的情況下與 escape 不符,則傳回 true。 |
ilike | str [not] ilike {ANY\|SOME\|ALL}([pattern[, ...]]) |
如果 str 不符合任何/所有模式不區分大小寫,則傳回 true。 |
in | elem [not] in (expr1[, ...]) |
如果 true 不等於任何 elem ,則傳回 exprN 。 |
in | elem [not] in (query) |
如果 true 不等於 elem 之中的任何資料列,則傳回 query 。 |
為相異 | expr1 is [not] distinct from expr2 |
測試引數是否具有不同的值,其中 NULL 被視為可比較的值。 |
為 False | expr is [not] false |
測試是否 expr 是 (不是) false 。 |
為 NULL | expr is [not] null |
如果 true 不是 expr ,則傳回 NULL 。 |
為 True | expr is [not] true |
測試是否 expr 是 (不是) true 。 |
like | str [not] like (pattern[ESCAPE escape]) |
如果 str 與具有 pattern 的 escape 不相符,則傳回 true。 |
like | str [not] like {ANY\|SOME\|ALL}([pattern[, ...]]) |
如果 str 不符合任何/所有模式,則傳回 true。 |
<=> | expr1 <=> expr2 |
對於非空運算元,傳回與 EQUAL(=) 相同的結果,但如果兩個運算元都是 true ,則傳回 NULL ;如果其中一個運算元是 false ,則傳回 NULL 。 |
<= | expr1 <= expr2 |
若 true 小於或等於 expr1 則傳回 expr2 ,否則傳回 false 。 |
<> | expr1 <> expr2 |
如果 true 不等於 expr1 ,則傳回 expr2 ,否則傳回 false 。 |
< | expr1 < expr2 |
如果 true 小於 expr1 ,則傳回 expr2 ,否則傳回 false 。 |
- | expr1 - expr2 |
傳回 expr2 與 expr1 的差集。 |
not | not expr |
傳回布林運算式的邏輯 NOT 。 |
or | expr1 or expr2 |
傳回 OR 和 expr1 的邏輯 expr2 。 |
% | dividend % divisor |
傳回 dividend / divisor 後的餘數。 |
|| | expr1 \|\| expr2 |
傳回 expr1 和 expr2 的串連。 |
| | expr1 \| expr2 |
傳回 OR 和 expr1 的位元運算 expr2 。 |
+ | expr1 + expr2 |
傳回 expr1 和 expr2 的總和。 |
regexp | str [not] regexp regex |
如果 str 不符合 regex ,則傳回 true。 |
regexp_like | str [not] regexp_like regex |
如果 str 不符合 regex ,則傳回 true。 |
rlike | str [not] rlike regex |
如果 str 不符合 regex ,則傳回 true。 |
/ | dividend / divisor |
傳回 dividend 除以 divisor 。 |
~ | ~ expr |
傳回的 NOT 的位元運算 expr 。 |
運算子優先順序
優先順序 | Operator |
---|---|
1 |
: 、 、 :: 、 ?:: [ ] |
2 |
- (unary), + (unary), ~ |
3 |
* 、 、 / 、 % div |
4 |
+ 、 、 - \|\| |
5 | & |
6 | ^ |
7 | \| |
8 |
= 、== 、<=> 、<> 、!= 、< 、<= 、 > >= |
9 |
not , exists |
10 |
between 、in 、rlike 、regexp 、ilike 、like 、、、 is [not] [NULL, true, false] is [not] distinct from |
11 | and |
12 | or |
字串和二進位函式
函式 | 描述 |
---|---|
expr1 || expr2 | 傳回 expr1 和 expr2 的串連。 |
aes_decrypt(expr, key[, mode[, padding[, aad]]]) | 使用 AES 加密解密二進位檔 expr 。 |
aes_encrypt(expr, key[, mode[, padding[, iv[, aad]]]]) | 使用 AES 加密來加密二進位檔 expr 。 |
ascii(str) | 傳回 str 第一個字元的 ASCII 字碼指標。 |
base64(expr) | 將 expr 轉換為 Base 64 字串。 |
bin(expr) | 傳回 expr 的二進位表示法。 |
binary(expr) | 將 expr 的值轉換為 BINARY 。 |
bit_length(expr) | 傳回字串資料的位元長度或二進位資料的位元數目。 |
bitmap_count(expr) | 傳回代表點陣圖的 BINARY 字串中設定的位元數。 |
btrim(str [, trimStr]) | 傳回已移除前置和後置字元的 str 。 |
char(expr) | 傳回所提供的 UTF-16 字碼指標的字元。 |
char_length(expr) | 傳回字串資料的字元長度或二進位資料的位元組數目。 |
character_length(expr) | 傳回字串資料的字元長度或二進位資料的位元組數目。 |
charindex(substr, str[, pos]) | 傳回 substr 中位置 str 之後出現第一個 pos 的位置。 |
chr(expr) | 傳回所提供的 UTF-16 字碼指標的字元。 |
strExpr 定序定序Name | 將明確定序 collationName 附加至 strExpr 。 |
定序 [用於] (strExpr) | 返回附加至 strExpr 的排序規則。 |
concat(expr1, expr2[, …]) | 傳回引數的串連。 |
concat_ws(sep[, expr1[, …]]) | 傳回以sep 分隔的串連字串。 |
contains(expr, subExpr) | 如果 true expr 或 STRING 包含 BINARY ,則傳回 subExpr 。 |
crc32(expr) | 傳回 expr 的循環冗餘檢查值。 |
decode(expr, charSet) | 使用字元集編碼 expr 將二進位檔 charSet 轉譯為字串。 |
encode(expr, charSet) | 使用 charSet 字元編碼傳回字串的二進位表示法。 |
endswith(expr, endExpr) | 如果 true expr 或 STRING 是以 BINARY 為結尾,則傳回 endExpr 。 |
find_in_set(searchExpr, sourceExpr) | 傳回字串在以逗號分隔的字串清單中的位置。 |
format_number(expr, scale) | 格式 expr ,例如 #,###,###.## ,會四捨五入為小數點後 scale 位。 |
format_number(expr, fmt) | 格式 expr ,例如 fmt 。 |
format_string(strfmt[, obj1 [, …]]) | 從 printf 樣式的格式字串傳回格式化字串。 |
hex(expr) | 將 expr 轉換成十六進位。 |
str ilike (pattern[ESCAPE escape]) | 如果 str 在 pattern 不區分大小寫的情況下與 escape 相符,則傳回 true。 |
initcap(expr) | 傳回 expr ,每個字的第一個字母為大寫。 |
instr(str, substr) | 傳回 substr 在 str 中第一次出現的索引 (以 1 為基礎)。 |
lcase(expr) | 傳回 expr ,所有字元都變更為小寫。 |
left(str, len) | 傳回從 len 最左邊的 str 個字元。 |
len(expr) | 傳回字串資料的字元長度或二進位資料的位元組數目。 |
length(expr) | 傳回字串資料的字元長度或二進位資料的位元組數目。 |
levenshtein(str1, str2) | 傳回字串 str1 與 str2 之間的 Levenshtein 距離。 |
str like (pattern[ESCAPE escape]) | 如果 str 與 pattern 與 escape 的組合相符,則傳回 true。 |
locate(substr, str[, pos]) | 傳回 substr 中位置 str 之後出現第一個 pos 的位置。 |
lower(expr) | 傳回 expr ,所有字元都變更為小寫。 |
lpad(expr, len[, pad]) | 傳回 expr ,左填補的 pad 長度為 len 。 |
ltrim([trimstr,] str) | 傳回 str ,並移除 trimStr 以內的前置字元。 |
mask(str[, upperChar[, lowerChar[, digitChar[, otherChar]]]]) | 傳回輸入 str 的遮罩版本。 |
md5(expr) | 以十六進位字串傳回 expr 的 MD5 128 位元總和檢查碼。 |
octet_length(expr) | 傳回字串資料的位元組長度或二進位資料的位元元組數目。 |
overlay(input PLACING replace FROM pos [FOR len]) | 以 input 取代 replace ,其開頭為 pos ,且長度為 len 。 |
overlay(input PLACING replace FROM pos [FOR len]) | 以 input 取代 replace ,其開頭為 pos ,且長度為 len 。 |
parse_url(url, partToExtract[, key]) | 從 url 擷取組件。 |
position(substr, str[, pos]) | 傳回 substr 中位置 str 之後出現第一個 pos 的位置。 |
position (subtr IN str) | 傳回 substr 中位置 str 之後出現第一個 pos 的位置。 |
printf(strfmt[, obj1 [, …]]) | 從 printf 樣式的格式字串傳回格式化字串。 |
randstr(長度) | 傳回一個由 length 個英數字元組成的隨機字串。 |
str regexp regex | 如果 str 符合 regex ,則傳回 true。 |
str regexp_like regex | 如果 str 符合 regex ,則傳回 true。 |
regexp_count(str, regexp) | 傳回 str 符合 regexp 模式的次數。 |
regexp_extract(str, regexp[, idx]) | 擷取 str 中符合 regexp 運算式的第一個字串,並對應至 regex 群組索引。 |
regexp_extract_all(str, regexp[, idx]) | 擷取 str 中符合 regexp 運算式的所有字串,並對應至 regex 群組索引。 |
regexp_instr(str, regexp) | 傳回 str 中符合 regexp 之第一個子字串的位置。 |
regexp_replace(str, regexp, rep[, position]) | 以 str 取代 regexp 中所有符合 rep 的子字串。 |
regexp_substr(str, regexp) | 傳回 str 中符合 regexp 的第一個子字串。 |
repeat(expr, n) | 傳回重複 expr n 次的字串。 |
replace(str, search [, replace]) | 將所有出現的 search 取代為 replace 。 |
reverse(expr) | 傳回反轉字串或具有項目反向順序的陣列。 |
right(str, len) | 從字串 len 傳回最右邊的 str 個字元。 |
str rlike regex | 如果 str 符合 regex ,則傳回 true。 |
rpad(expr, len[, pad]) | 傳回 expr ,並以 pad 右填補至 len 的長度。 |
rtrim([trimStr,] str) | 傳回已移除後置字元的 str 。 |
sentences(str[, lang, country]) | 將 str 分割成單字陣列。 |
sha(expr) | 傳回 sha1 雜湊值為 expr 的十六進制字串。 |
sha1(expr) | 傳回 sha1 雜湊值為 expr 的十六進制字串。 |
sha2(expr, bitLength) | 傳回 SHA-2 系列的總和檢查碼為 expr 的十六進位字串。 |
soundex(expr) | 傳回字串的 soundex 程式碼。 |
space(n) | 傳回包含 n 空格的字串。 |
split(str, regex[, limit]) | 分割 str 圍繞符合 regex 的出現次數,並傳回最長為 limit 的陣列。 |
split_part(str, delim, partNum) | 分割 str 出現處周圍的 delim ,並傳回 partNum 的組件。 |
startswith(expr, startExpr) | 如果 true expr 或 STRING 是以 BINARY 為開頭,傳回 startExpr 。 |
string(expr) | 將值 expr 轉換為 STRING 。 |
substr(expr, pos[, len]) | 傳回從 expr 開始且長度為 pos 之 len 的子字串。 |
substr(expr FROM pos[ FOR len]) | 傳回從 expr 開始且長度為 pos 之 len 的子字串。 |
substring(expr, pos[, len]) | 傳回從 expr 開始且長度為 pos 之 len 的子字串。 |
substring(expr FROM pos[ FOR len]) | 傳回從 expr 開始且長度為 pos 之 len 的子字串。 |
substring_index(expr, delim, count) | 傳回在分隔符號 expr 的 count 次出現之前的 delim 的子字串。 |
to_binary(expr[, fmt]) | 傳回以 expr 為基礎的二進位 fmt 投射。 |
to_char(numExpr, fmt) | 傳回使用格式 numExpr 轉換為 STRING 的 fmt 。 |
to_varchar(numExpr, fmt) | 傳回使用格式 numExpr 轉換為 STRING 的 fmt 。 |
translate(expr, from, to) | 傳回 expr ,而 from 中的所有字元都已取代為 to 中的字元。 |
trim([[BOTH | LEADING | TRAILING] [trimStr] FROM] str) | 修剪字串中的字元。 |
try_aes_decrypt(expr, key[, mode[, padding[, aad]]]) | 使用 AES 加密解密二進位檔 expr ,並在發生錯誤時傳回 NULL 。 |
try_to_binary(expr [, fmt]) | 根據 expr 將 BINARY 轉為 fmt 傳回,若輸入無效則傳回 NULL 。 |
try_url_decode(str) | 從 application/x-www-form-urlencoded 格式轉譯字串,並在發生錯誤時傳回 NULL 。 |
try_zstd_decompress(value) | 傳回使用 Zstandard 壓縮解壓縮的值,或如果輸入無效,則傳回 NULL 。 |
ucase(expr) | 傳回 expr ,所有字元都變更為大寫。 |
unbase64(expr) | 傳回解碼為二進位的 base64 字串。 |
unhex(expr) | 將十六進位 expr 轉換為 BINARY 。 |
upper(expr) | 傳回 expr ,所有字元都變更為大寫。 |
url_decode(str) | 從 application/x-www-form-urlencoded 格式轉譯字串。 |
url_encode(str) | 將字串轉譯為 application/x-www-form-urlencoded 格式。 |
zstd_compress (value[,level[,streaming_mode]]) | 傳回使用 Zstandard 壓縮壓縮的值。 |
zstd_decompress(value) | 傳回使用 Zstandard 壓縮解壓縮的值。 |
數值純量函式
函式 | 描述 |
---|---|
~ expr | 傳回的 NOT 的位元運算 expr 。 |
dividend / divisor | 傳回 dividend 除以 divisor 。 |
expr1 | expr2 | 傳回 OR 和 expr1 的位元運算 expr2 。 |
- expr | 傳回 expr 的負值。 |
expr1 - expr2 | 傳回 expr2 與 expr1 的差集。 |
+ expr | 傳回 expr 的值。 |
expr1 + expr2 | 傳回 expr1 和 expr2 的總和。 |
dividend % divisor | 傳回 dividend / divisor 後的餘數。 |
expr1 ^ expr2 | 傳回 OR (XOR) 和 expr1 的位元運算排除 expr2 。 |
expr1 & expr2 | 傳回 AND 和 expr1 的位元運算 expr2 。 |
multiplier * multiplicand | 傳回 multiplier 乘以 multiplicand 。 |
abs(expr) | 傳回 expr 中數值的絕對值。 |
acos(expr) | 傳回 expr 的反餘弦。 |
acosh(expr) | 傳回 expr 的反雙曲餘弦值。 |
asin(expr) | 傳回 expr 的反正弦值 (arcsine)。 |
asinh(expr) | 傳回 expr 的反雙曲正弦值。 |
atan(expr) | 傳回 expr 的反切值 (反正切)。 |
atan2(exprY, exprX) | 傳回平面的正 x 軸與坐標 (exprX ,exprY ) 指定的點之間的角度,單位為弧度。 |
atanh(expr) | 傳回 expr 的雙曲正切。 |
bigint(expr) | 將值 expr 轉換為 BIGINT 。 |
bit_count(expr) | 傳回在引數中設定的位元數。 |
bit_get(expr, pos) | 傳回整數數值的二進位表示法中位的值。 |
bit_reverse(expr) | 傳回藉由反轉 引數中位的順序所取得的值。 |
bitmap_bit_position(expr) | 傳回貯體中指定 BIGINT 數位的 0 位位置。 |
bitmap_bucket_number(expr) | 傳回指定 BIGINT 數位的點陣圖貯體編號。 |
bround(expr[,targetScale]) | 使用 expr 四捨五入模式傳回已四捨五入的 HALF_EVEN 。 |
cbrt(expr) | 傳回 expr 的平方根。 |
ceil(expr[,targetScale]) | 傳回不小於 expr 的最小數字,相對於小數點四捨五入到 targetScale 位數。 |
ceiling(expr[,targetScale]) | 傳回不小於 expr 的最小數字,相對於小數點四捨五入到 targetScale 位數。 |
conv(num, fromBase, toBase) |
num
fromBase
toBase 從轉換為。 |
convert_timezone([sourceTz, ]targetTz, sourceTs) | 將 TIMESTAMP_NTZ sourceTs 從 sourceTz 時區轉換為。targetTz |
cos(expr) | 傳回 expr 的餘弦。 |
cosh(expr) | 傳回 expr 的雙曲餘弦。 |
cot(expr) | 傳回 expr 的正切。 |
csc(expr) | 傳回 expr 的餘弦。 |
decimal(expr) | 將值 expr 轉換為 DECIMAL 。 |
degrees(expr) | 將弧度轉換為度。 |
divisor div dividend | 傳回 divisor 除以 dividend 的整數部分。 |
double(expr) | 將值 expr 轉換為 DOUBLE 。 |
e() | 傳回常數 e 。 |
exp(expr) | 傳回 e 至 expr 的幂。 |
expm1(expr) | 傳回 exp(expr) - 1 。 |
factorial(expr) | 傳回 expr 的階乘。 |
float(expr) | 將值 expr 轉換為 FLOAT 。 |
floor(expr[,targetScale]) | 傳回相對於小數點向下捨入到 expr 位的不小於 targetScale 的最大數字。 |
getbit(expr, pos) | 傳回整數數值的二進位表示法中位的值。 |
hypot(expr1, expr2) | 傳回 sqrt(expr1 * expr1 + expr2 * expr2) 。 |
int(expr) | 將值 expr 轉換為 INTEGER 。 |
isnan(expr) | 如果 true 為 expr ,則傳回 NaN 。 |
ln(expr) | 傳回 e 的自然對數 (基本 expr )。 |
log([base,] expr) | 傳回 expr 與 base 的對數值。 |
log1p(expr) | 傳回 log(1 + expr) 。 |
log2(expr) | 傳回 expr 以 2 為底的對數。 |
log10(expr) | 傳回 expr 以 10 為底的對數。 |
mod(dividend, divisor) | 傳回 dividend / divisor 之後的餘數。 |
nanvl(expr1, expr2) | 如果它不是 expr1 ,則傳回 NaN ,否則傳回 expr2 。 |
negative(expr) | 傳回 expr 的負值。 |
'nullifzero(expr)' | 如果不是零,則expr 傳NULL 回 ,否則傳回 。 |
pi() | 傳回 pi。 |
pmod(dividend, divisor) | 傳回 dividend / divisor 後面的正餘數。 |
positive(expr) | 傳回 expr 的值。 |
pow(expr1, expr2) | 將 expr1 提升為 expr2 的幂。 |
power(expr1, expr2) | 將 expr1 提升為 expr2 的幂。 |
radians(expr) | 將 expr 的度數轉換成弧度。 |
rand([seed]) | 傳回介於 0 到 1 之間的隨機值。 |
randn([seed]) | 從標準常態分佈傳回隨機值。 |
random([seed]) | 傳回介於 0 到 1 之間的隨機值。 |
rint(expr) | 傳回四捨五入為整數的 expr ,表示為 DOUBLE 。 |
round(expr[,targetScale]) | 使用 expr 四捨五入模式傳回已四捨五入的 HALF_UP 。 |
sec(expr) | 傳回 expr 的餘弦。 |
shiftleft(expr, n) | 傳回位元運算向左位移 n 位元的結果。 |
shiftright(expr, n) | 傳回將帶號整數進行位元向右位移 n 位元的結果。 |
shiftrightunsigned(expr, n) | 傳回位元無符號有符號整數右移 n 位元。 |
sign(expr) | 傳回 -1.0、0.0 或 1.0,如同 expr 為負數、0 或正數。 |
signum(expr) | 傳回 -1.0、0.0 或 1.0,如同 expr 為負數、0 或正數。 |
sin(expr) | 傳回 expr 的正弦。 |
sinh(expr) | 傳回 expr 的雙曲正弦。 |
smallint(expr) | 將值 expr 轉換為 SMALLINT 。 |
sqrt(expr) | 傳回 expr 的平方根。 |
tan(expr) | 傳回 expr 的正切。 |
tanh(expr) | 傳回 expr 的雙曲正切。 |
tinyint(expr) | 將 expr 轉換成 TINYINT 。 |
to_number(expr, fmt ) | 傳回使用格式 expr 轉換為 DECIMAL 的 fmt 。 |
try_add(expr1, expr2) | 傳回 expr1 和 expr2 的總和,若有錯誤,則傳回 NULL 。 |
try_divide(dividend, divisor) | 傳回 dividend 除以 divisor ,若 NULL 為 0 則傳回 divisor 。 |
try_mod(dividend, divisor) | 傳回 dividend / divisor 之後的餘數,若 NULL 為 0,則傳回 divisor 。 |
try_multiply(multiplier, multiplicand) | 傳回 multiplier 乘以 multiplicand ,溢位時則傳回 NULL 。 |
try_subtract(expr1, expr2) | 傳回 expr2 減 expr1 的結果,溢位時則傳回 NULL 。 |
try_to_number(expr, fmt ) | 使用格式 expr 將 DECIMAL 轉換為 fmt ,如果 NULL 不符合格式,則傳回 expr 。 |
均勻分布(expr1, expr2[,seed]) | 傳回在指定數位範圍內具有獨立且相同分佈值的隨機值。 |
width_bucket(expr, minExpr, maxExpr, numBuckets) | 傳回等寬直方圖中值的貯體編號。 |
'zeroifnull(expr)' | 如果 不是 expr ,則NULL 傳0 回 ,否則傳回 。 |
彙總函數
函式 | 描述 |
---|---|
any(expr) | 如果群組中至少有一個值 expr 為 true,則傳回 true。 |
any_value(expr[,ignoreNull]) | 傳回一組資料列的某個值 expr 。 |
approx_count_distinct(expr[,relativeSD]) | 傳回群組中 expr 中不同值的估計數目。 |
approx_percentile(expr,percentage[,accuracy]) | 傳回群組中 expr 的百分位數近似值 |
approx_top_k(expr[,k[,maxItemsTracked]]) | 傳回 k 中最常出現的前 expr 個項目值及其近似計數。 |
array_agg(expr) | 傳回由 expr 組內所有值組成的陣列。 |
avg(expr) | 傳回從群組值計算的平均值。 |
bit_and(expr) | 傳回群組中所有輸入值的位元運算 AND 。 |
bit_or(expr) | 傳回群組中所有輸入值的位元運算 OR 。 |
bit_xor(expr) | 傳回群組中所有輸入值的位元運算 XOR 。 |
bitmap_construct_agg(expr) | 傳回群組中所有位元位置值的位元運算 OR 。 在群組中介於 0 到 32767 之間,做為 BINARY 。 |
bitmap_or_agg(expr) | 傳回群組中所有 OR 輸入值的位元運算 BINARY 。 |
bool_and(expr) | 如果 expr 中的所有值在群組內都為 true,則傳回 true。 |
bool_or(expr) | 如果 expr 中至少有一個值在群組內為 true,則傳回 true。 |
collect_list(expr) | 傳回由 expr 組內所有值組成的陣列。 |
collect_set(expr) | 傳回由群組內 expr 中所有唯一值組成的陣列。 |
corr(expr1,expr2) | 傳回一組數位組之間的相互關聯 Pearson 係數。 |
count(*) | 傳回群組中擷取的資料列總數,包括包含 null 的資料列。 |
count(expr[, …]) | 傳回群組中提供的表示式都是非 Null 的資料列數目。 |
count_if(expr) | 傳回 expr CI 群組的 true 值數目。 |
count_min_sketch(column,epsilon,confidence,seed) | 使用 column 、epsilon 和 confidence 傳回 群組中 seed 所有值的 count-min 草圖。 |
covar_pop(expr1,expr2) | 傳回群組中數位組的母體共變數。 |
covar_samp(expr1,expr2) | 傳回群組中數位組的樣本共變數。 |
every(expr) | 如果群組中所有expr 的值都為 true,則傳回 true。 |
first(expr[,ignoreNull]) | 傳回資料列群組的 expr 的第一個值。 |
first_value(expr[,ignoreNull]) | 傳回資料列群組的 expr 的第一個值。 |
histogram_numeric(expr,numBins) | 在 expr 上以 numBins 個 間隔計算直方圖,傳回代表間隔中心的對陣列。 |
hll_sketch_agg(expr[,lgConfigK]) | 傳回 HyperLogLog 草圖,用來近似相異值計數。 |
hll_union_agg(expr[,allowDifferentLgConfigK]) | 彙總一組資料列的 HyperLogLog 草圖。 |
kurtosis(expr) | 傳回由群組數值計算出的峰度值。 |
last(expr[,ignoreNull]) | 傳回資料列群組之 expr 的最後一個值。 |
last_value(expr[,ignoreNull]) | 傳回資料列群組之 expr 的最後一個值。 |
max(expr) | 傳回群組中 expr 的最大值。 |
max_by(expr1,expr2) | 傳回群組中與最大值 expr1 相關的 expr2 的值。 |
mean(expr) | 傳回從群組值計算的平均值。 |
median(expr) | 傳回從群組值計算的中位數。 |
min(expr) | 傳回群組中 expr 的最小值。 |
min_by(expr1, expr2) | 傳回群組中與最小值 expr1 相關的 expr2 的值。 |
mode(expr [,deterministic]) | 傳回 NULL 在群組中最常出現的值,而非 expr 。 |
percentile(expr, percentage [,frequency]) | 傳回指定 expr 時 percentage 的確切百分位數值。 |
percentile_approx(expr,percentage[,accuracy]) | 傳回群組中 expr 的百分位數近似值 |
percentile_cont(pct) WITHIN GROUP (ORDER BY key) | 傳回群組中 key 的內插百分位數。 |
percentile_disc(pct) WITHIN GROUP (ORDER BY key) | 傳回群組中 key 的離散百分位數。 |
regr_avgx(yExpr, xExpr) | 傳回由 xExpr 和 xExpr 為 yExpr 的群組值計算出的 NOT NULL 的平均值。 |
regr_avgy(yExpr, xExpr) | 傳回由 yExpr 和 xExpr 為 yExpr 的群組值計算出的 NOT NULL 的平均值。 |
regr_count(yExpr, xExpr) | 傳回群組中非空值組 yExpr ,xExpr 的數目。 |
regr_intercept(yExpr, xExpr) | 傳回群組中單變數線性回歸線的截距,其中 xExpr 和 yExpr 為 NOT NULL。 |
regr_r2(yExpr, xExpr) | 從群組的值傳回決定係數,其中 xExpr 和 yExpr 為 NOT NULL。 |
regr_slope(yExpr, xExpr) | 傳回群組中非空值對 yExpr ,xExpr 的線性回歸線斜率。 |
regr_sxx(yExpr, xExpr) | 傳回 xExpr 和 xExpr 為 NOT NULL 的群組 yExpr 值的平方和。 |
regr_sxy(yExpr, xExpr) | 傳回由 yExpr 和 xExpr 為 xExpr 的群組值計算出的 yExpr 和 NOT NULL 的乘積之和。 |
regr_syy(yExpr, xExpr) | 傳回 yExpr 和 xExpr 為 NOT NULL 的群組 yExpr 值的平方和。 |
schema_of_json_agg(json[, options]) | 以 DDL 格式返回群組中 JSON 個字串的合併結構描述。 |
schema_of_variant_agg(variantExpr) | 以 DDL 格式傳回群組中所有 VARIANT 值的合併結構描述。 |
skewness(expr) | 傳回從群組值計算的扭曲值。 |
some(expr) | 如果群組中至少有一個 expr 的值是 true ,則傳回 true。 |
std(expr) | 傳回從群組內值計算的樣本標準偏差。 |
stddev(expr) | 傳回從群組內值計算的樣本標準偏差。 |
stddev_pop(expr) | 傳回從群組值計算的母體標準偏差。 |
stddev_samp(expr) | 傳回從一個群組的數值計算出來的樣本標準差。 |
sum(expr) | 傳回從群組值計算的總和。 |
try_avg(expr) | 如果發生溢位,則傳回從群組值計算的平均值 NULL 。 |
try_sum(expr) | 如果發生溢位,則傳回從群組值計算的總和 NULL 。 |
var_pop(expr) | 傳回從群組值計算的母體變異數。 |
var_samp(expr) | 傳回從群組值計算的樣本變異數。 |
variance(expr) | 傳回從群組值計算的樣本變異數。 |
排名視窗函式
函式 | 描述 |
---|---|
dense_rank() | 傳回與分割區中所有值相較之下的值排名。 |
ntile(n) | 函式會將每個視窗分割區中的資料列分成 n 個貯體,範圍從 1 到最多 n 。 |
percent_rank() | 計算資料分割內值的百分比排名。 |
rank() | 傳回與分割區中所有值相較之下的值排名。 |
row_number() | 根據視窗分割內資料列的順序,為每個資料列指派唯一的序號,從一個開始。 |
分析視窗函式
函式 | 描述 |
---|---|
cume_dist() | 傳回相對於資料分割中所有值的值位置。 |
lag(expr[,offset[,default]]) | 傳回分割區內前一行的值 expr 。 |
lead(expr[,offset[,default]]) | 傳回分割區內後續行的值 expr 。 |
nth_value(expr, offset[, ignoreNulls]) | 傳回視窗中特定 expr 處的值 offset 。 |
陣列函數
函式 | 描述 |
---|---|
arrayExpr[indexExpr] | 傳回 ARRAY indexExpr 位置 arrayExpr 的元素。 |
aggregate(expr,start,merge[,finish]) | 使用自訂彙總工具彙總數組中的項目。 |
array([expr [, …]]) | 傳回包含 expr 中元素的陣列。 |
array_append(array, elem) | 傳回被 array 附加的 elem 。 |
array_compact(array) | 從 array 中移除 Null 值。 |
array_contains(array,value) | 如果 array 包含 value ,則傳回 true。 |
array_distinct(array) | 移除 array 中的重複值。 |
array_except(array1,array2) | 傳回在 array1 中但不在 array2 中的元素的陣列。 |
array_insert(array, index, elem) | 傳回已展開的 array ,其中 elem 已插入 index 位置。 |
array_intersect(array1,array2) | 傳回 array1 和 array2 交集中元素的陣列。 |
array_join(array,delimiter[,nullReplacement]) | 串連 array 的元素。 |
array_max(array) | 傳回 array 中的最大值。 |
array_min(array) | 傳回 array 中的最小值。 |
array_position(array,element) | 傳回 element 中出現第一個 array 的位置。 |
array_prepend(array, elem) | 傳回 array ,前面加上 elem 。 |
array_remove(array,element) | 從element 移除 的所有項目array 。 |
array_repeat(element,count) | 傳回包含 element count 時間的陣列。 |
array_size(array) | 傳回 array 中的元素數目。 |
array_sort(array,func) | 傳回根據 array 排序的 func 。 |
array_union(array1,array2) | 傳回 array1 和 array2 結合中沒有重複元素的陣列。 |
arrays_overlap(array1, array2) | 如果 array1 和 array2 的交集不是空的,則傳回 true。 |
arrays_zip(array1 [, …]) | 傳回結構合併的陣列,其中第 n 個結構包含輸入數位的所有 N 個值。 |
cardinality(expr) | 傳回 expr 的大小。 |
concat(expr1, expr2 [, …]) | 傳回引數的串連。 |
element_at(arrayExpr, index) | 返回 arrayExpr 處的 index 元素。 |
exists(expr, pred) | 對於 pred 中的任何元素,如果 expr 為 true,則傳回 true。 |
explode(collection) | 透過取消巢狀 collection 傳回資料列。 |
explode_outer(collection) | 使用外層語意,透過取消巢狀 collection 傳回資料列。 |
filter(expr,func) | 使用 expr 函式篩選 func 中的陣列。 |
flatten(arrayOfArrays) | 將陣列陣陣轉換成單一陣列。 |
forall(expr, predFunc) | 測試是否 predFunc 保留陣列中的所有項目。 |
get(arrayExpr, index) | 傳回 arrayExpr 在 index ,從 0 開始的元素。 |
內嵌(輸入) | 將結構陣列分解成資料表。 |
inline_outer(輸入) | 將結構數位分解成具有外部語意的資料表。 |
posexplode(collection) | 將具有位置編號的陣列取消巢狀,以傳回資料列。 |
posexplode_outer(集合) | 使用 OUTER 語意取消巢狀陣列,並編號位置,以傳回資料列。 |
reduce(expr,start,merge[,finish]) | 使用自訂彙總工具彙總數組中的項目。 |
reverse(array) | 傳回反轉字串或具有項目反向順序的陣列。 |
sequence(start,stop,step) | 從產生項目start 陣列,從到 stop (內含),遞增。step |
shuffle(array) | 傳回 expr 中陣列的隨機排列。 |
size(expr) | 傳回的 expr 基數。 |
slice(expr,start,length) | 傳回陣列的子集。 |
sort_array(expr[,ascendingOrder]) | 以排序順序傳回 expr 中的陣列。 |
transform(expr, func) | 使用 expr 函式轉換 func 中陣列中的元素。 |
try_element_at(arrayExpr, index) | 傳回 arrayExpr 在 index 處的元素,如果 NULL 超出範圍,則傳回 index 。 |
zip_with(expr1, expr2, func) | 使用 將和expr1 中的expr2 數組合並成單一陣列func 。 |
對應函式
函式 | 描述 |
---|---|
mapExpr[keyExpr] | 傳回對應 keyExpr 的 mapExpr 值。 |
cardinality(expr) | 傳回 expr 的大小。 |
element_at(mapExpr, key) | 傳回 mapExpr 的 key 值。 |
explode(collection) | 透過取消巢狀 expr 傳回資料列。 |
explode_outer(collection) | 使用外層語意,透過取消巢狀 expr 傳回資料列。 |
map([{key1, value1}[, …]]) | 使用指定的索引鍵/值組對建立對應。 |
map_concat([expr1 [, …]]) | 傳回所有 expr 對應運算式的聯集。 |
map_contains_key(map, key) | 如果 true 包含 map ,則傳回 key ,否則傳回 false 。 |
map_entries(map) | 傳回 map 中所有項目的未排序陣列。 |
map_filter(expr, func) | 使用 expr 函式篩選 func 中對應中的項目。 |
map_from_arrays(keys, values) | 建立具有一對 keys 和 values 陣列的對應。 |
map_from_entries(expr) | 建立從指定項目陣列建立的對應。 |
map_keys(map) | 傳回未排序的陣列,其中包含 map 的索引鍵。 |
map_values(map) | 傳回未排序的陣列,其中包含 map 的值。 |
map_zip_with(map1, map2, func) | 將 map1 和 map2 合併成單一對應。 |
size(expr) | 傳回的 expr 基數。 |
str_to_map(expr[,pairDelim[,keyValueDelim]]) | 使用分隔符分割 expr 成索引鍵/值組之後,傳回對應。 |
transform_keys(expr, func) | 使用 expr 函式轉換 func 中對應中的索引鍵。 |
transform_values(expr, func) | 使用 expr 函式 轉換 func 中的對應值。 |
try_element_at(mapExpr, key) | 傳回 mapExpr 的值 key ,如果 NULL 不存在,則傳回值 key 。 |
日期、時間戳記和間隔函式
如需日期和時間格式的資訊,請參閱 日期時間模式。
函式 | 描述 |
---|---|
intervalExpr / divisor | 傳回除以 divisor 的間隔。 |
- intervalExpr | 傳回 intervalExpr 的負值。 |
intervalExpr1 - intervalExpr2 | 傳回 intervalExpr2 與 intervalExpr1 的差集。 |
datetimeExpr1 - datetimeExpr2 | 傳回 datetimeExpr2 與 datetimeExpr1 的差集。 |
+ intervalExpr | 傳回 intervalExpr 的值。 |
intervalExpr1 + intervalExpr2 | 傳回 intervalExpr1 和 intervalExpr2 的總和。 |
intervalExpr * multiplicand | 傳回 intervalExpr 乘以 multiplicand 。 |
abs(expr) | 傳回 expr 中間隔值的絕對值。 |
add_months(startDate,numMonths) | 傳回 numMonths 之後的日期 startDate 。 |
curdate() | 傳回查詢評估開始時的目前日期。 |
current_date() | 傳回查詢評估開始時的目前日期。 |
current_timestamp() | 傳回查詢評估開始時的目前時間戳記。 |
current_timezone() | 傳回目前工作階段的當地時間。 |
date(expr) | 將值 expr 轉換成 DATE。 |
date_add(startDate,numDays) | 傳回 numDays 之後的日期 startDate 。 |
date_add(unit, value, expr) | 將 s 加入value unit 至時間戳記。 expr |
date_diff(unit, start, stop) | 傳回以 unit 測量的兩個時間戳記之間的差異。 |
date_format(expr,fmt) | 以 格式 fmt 將時間戳記轉換為字串。 |
date_from_unix_date(days) | 從之後 1970-01-01 的天數建立日期。 |
date_part(field,expr) | 擷取日期、時間戳記或間隔的一部分。 |
date_sub(startDate,numDays) | 傳回 numDays 之前的日期 startDate 。 |
date_trunc(unit,expr) | 傳回截斷至 unit 中所指定單位的時間戳記。 |
dateadd(startDate,numDays) | 傳回 numDays 之後的日期 startDate 。 |
dateadd(unit, value, expr) | 將 s 加入value unit 至時間戳記。 expr |
datediff(endDate,startDate) | 傳回從 startDate 到 endDate 的天數。 |
datediff(unit, start, stop) | 傳回以 unit 測量的兩個時間戳記之間的差異。 |
day(expr) | 傳回日期或時間戳記的月份日期。 |
dayname(expr) | 傳回指定日期一周當天的三個字母英文縮寫。 |
dayofmonth(expr) | 傳回日期或時間戳記的月份日期。 |
dayofweek(expr) | 傳回日期或時間戳記的星期數。 |
dayofyear(expr) | 傳回日期或時間戳記的年份日期。 |
divisor div dividend | 傳回間隔 divisor 除以間隔 dividend 的整數部分。 |
extract(field FROM source) | 傳回 field 的 source 。 |
from_unixtime(unixTime,fmt) | 傳回 unixTime 中的 fmt 。 |
from_utc_timestamp(expr,timezone) | 傳UTC 回 時間戳的 時間戳expr 。timeZone |
getdate() | 傳回查詢評估開始時的目前時間戳記。 |
hour(expr) | 傳回時間戳記的小時元件。 |
last_day(expr) | 傳回日期所屬月份的最後一天。 |
make_date(year,month,day) | 從 year 、 month 和 day 欄位建立日期。 |
make_dt_interval([days[, hours[, mins[, secs]]]]) | 從days 、 hours mins 和 secs 建立日時間間隔。 |
make_interval(years, months, weeks, days, hours, mins, secs) | 已淘汰:從 years 、、months 、weeks 、days 、 hours mins 和 secs 建立間隔。 |
make_timestamp(year,month,day,hour,min,sec[,timezone]) | 從year 、month 、、、day hour 、min 、 sec 和 timezone 欄位建立時間戳記。 |
make_ym_interval([years[, months]]) | 從 years 和 months 建立年月間隔。 |
minute(expr) | 傳回時間戳的分鐘分量,單位為 expr 。 |
month(expr) | 傳回時間戳記的月份分量,單位為 expr 。 |
months_between(expr1,expr2[,roundOff]) | 傳回 expr1 和 expr2 中的日期或時間戳記之間相隔的月數 |
next_day(expr,dayOfWeek) | 傳回第一個晚於 expr 並命名為 dayOfWeek 的日期。 |
now() | 傳回查詢評估開始時的目前時間戳記。 |
quarter(expr) | 傳回範圍 1 到 4 中 expr 的年份季度。 |
second(expr) | 傳回時間戳記的第二分量,單位為 expr . |
session_window(expr, gpDuration) | 在時間戳記表示式上建立工作階段視窗。 |
sign(expr) | 傳回 -1.0、0.0 或 1.0,因為間隔 expr 為負數、0 或正數。 |
signum(expr) | 傳回 -1.0、0.0 或 1.0,因為間隔 expr 為負數、0 或正數。 |
timediff(unit, start, stop) | 傳回以 unit 測量的兩個時間戳記之間的差異。 |
timestamp(expr) | 將 expr 轉換成 TIMESTAMP 。 |
timestamp_micros(expr) | 建立自UTC epoch以來的時間戳記 expr 微秒數。 |
timestamp_millis(expr) | 建立UTC epoch之後的時間戳記 expr 毫秒。 |
timestamp_seconds(expr) | 建立UTC epoch之後的時間戳記 expr 秒數。 |
timestampadd(unit, value, expr) | 將 s 加入value unit 至時間戳記。 expr |
timestampdiff(unit, start, stop) | 傳回以 unit 測量的兩個時間戳記之間的差異。 |
to_date(expr[,fmt]) | 傳回使用選用格式化轉換為日期的 expr 。 |
to_timestamp(expr[,fmt]) | 傳回使用選用格式化轉換成時間戳記的 expr 。 |
to_unix_timestamp(expr[,fmt]) | 傳回 expr 中的時間戳記為 UNIX 時間戳記。 |
to_utc_timestamp(expr,timezone) | 傳UTC 回 時間戳的 時間戳expr 。timezone |
trunc(expr, fmt) | 傳回日期,其日期部分截斷至格式模型 fmt 所指定的單位。 |
try_add(expr1, expr2) | 傳回 expr1 和 expr2 的總和 ,如果發生錯誤,則傳回 NULL。 |
try_divide(dividend, divisor) | 傳回 dividend 除以 divisor ,若 divisor 為 0 則傳回為 NULL。 |
try_multiply(multiplier, multiplicand) | 傳回 multiplier 乘以 multiplicand ,溢位時則傳回 NULL 。 |
try_subtract(expr1, expr2) | 傳回 expr2 減 expr1 的結果,溢位時則傳回 NULL 。 |
try_to_timestamp(expr[,fmt]) | 傳回 expr 使用選用格式化轉換為時間戳記,若轉換失敗則傳回 NULL 。 |
unix_date(expr) | 傳回自 1970-01-01 以來的天數。 |
unix_micros(expr) | 傳回自 1970-01-01 00:00:00 UTC 以來的微秒數。 |
unix_millis(expr) | 傳回自 1970-01-01 00:00:00 UTC 以來的毫秒數。 |
unix_seconds(expr) | 傳回自 1970-01-01 00:00:00 UTC 以來的秒數。 |
unix_timestamp([expr[, fmt]]) | 擷取目前或指定時間的 UNIX 時間戳記。 |
weekday(expr) | 傳回 expr 星期的星期幾。 |
weekofyear(expr) | 傳回 expr 年度的週。 |
year (expr) | 傳回的 expr 年份元件。 |
window(expr, width[, step[, start]]) | 在時間戳記運算式上建立以跳動為基礎的滑動視窗。 |
window_time(window) | 傳回視窗或 session_window 函式所產生的滑動視窗內含結束時間。 |
H3 地理空間函式
如需 H3 地理空間函式的相關資訊,請參閱 H3 地理空間函式。
轉換函式和建構函式
如需類型之間轉換的資訊,請參閱 cast 函 式和 try_cast函式。
函式 | 描述 |
---|---|
array([expr [, …]]) | 傳回包含 expr 中元素的陣列。 |
bigint(expr) | 將值 expr 轉換為 BIGINT 。 |
binary(expr) | 將 expr 的值轉換為 BINARY 。 |
boolean(expr) | 將 expr 轉換成 BOOLEAN 。 |
cast(expr AS type) | 將值 expr 轉換成目標資料類型 type 。 |
expr :: type | 將值 expr 轉換成目標資料類型 type 。 |
date(expr) | 將值 expr 轉換為 DATE 。 |
decimal(expr) | 將值 expr 轉換為 DECIMAL 。 |
double(expr) | 將值 expr 轉換為 DOUBLE 。 |
float(expr) | 將值 expr 轉換為 FLOAT 。 |
int(expr) | 將值 expr 轉換為 INTEGER 。 |
make_date(year,month,day) | 從 year 、 month 和 day 欄位建立日期。 |
make_dt_interval([days[, hours[, mins[, secs]]]]) | 從days 、 hours mins 和 secs 建立日時間間隔。 |
make_interval(years, months, weeks, days, hours, mins, secs) | 從years 、、months 、weeks days 、 hours mins 和 secs 建立間隔。 |
make_timestamp(year,month,day,hour,min,sec[,timezone]) | 從year 、month 、、、day hour 、min 、 sec 和 timezone 欄位建立時間戳記。 |
make_ym_interval([years[, months]]) | 從 years 和 months 建立年月間隔。 |
map([{key1, value1} [, …]]) | 使用指定的索引鍵/值組對建立對應。 |
named_struct({name1, val1} [, …]) | 使用指定的功能變數名稱和值建立結構。 |
smallint(expr) | 將值 expr 轉換為 SMALLINT 。 |
string(expr) | 將值 expr 轉換為 STRING 。 |
struct(expr1 [, …]) | 使用指定的欄位值建立。STRUCT |
tinyint(expr) | 將 expr 轉換成 TINYINT 。 |
timestamp(expr) | 將 expr 轉換成 TIMESTAMP 。 |
to_char(expr, fmt) | 傳回使用格式 expr 轉換為 STRING 的 fmt 。 |
to_date(expr[,fmt]) | 傳回使用選用格式化轉換為日期的 expr 。 |
to_number(expr, fmt) | 傳回使用格式 expr 轉換為 DECIMA L 的 fmt 。 |
to_timestamp(expr[,fmt]) | 傳回使用選用格式化轉換成時間戳記的 expr 。 |
to_varchar(expr, fmt) | 傳回使用格式 expr 轉換為 STRING 的 fmt 。 |
try_cast(expr AS type) | 安全地將值 expr 轉換成目標資料類型。type |
try_to_number(expr, fmt) | 使用格式化 expr 將 DECIMAL 傳回給 fmt ,若格式化 NULL 無效,則傳回 expr 。 |
CSV 和 Avro 函式
函式 | 描述 |
---|---|
from_avro(avroBin, jsonSchema[, options]) | 根據和avroBin 傳回結構值jsonSchema 。 |
from_csv(csvStr, schema[, options]) | 傳回結構值為 csvStr 和 schema 的字串。 |
schema_of_csv(csv[, options]) | 以 DDL 格式傳回 CSV 字串的結構描述。 |
to_avro(expr[, options]) | 傳回具有指定結構值的 Avro 二進位值。 |
to_csv(expr[, options]) | 傳回具有指定結構值的 CSV 字串。 |
JSON 函式
函式 | 描述 |
---|---|
jsonStr : jsonPath | 傳回從 jsonStr 擷取的欄位。 |
from_json(jsonStr, schema[, options]) | 傳回結構值為 jsonStr 和 schema 的字串。 |
get_json_object(expr, path) | 從JSON 擷path 取物件。 |
json_array_length(jsonArray) | 傳回最外層 JSON 陣列中的元素數目。 |
json_object_keys(jsonObject) | 傳回最外層 JSON 物件的所有索引鍵做為陣列。 |
json_tuple(jsonStr, path1 [, …]) | 以 Tuple 的形式傳回多個 JSON 物件。 |
parse_json(jsonStr) | 從 VARIANT 傳回 jsonStr 值。 |
schema_of_json(jsonStr[, options]) | 傳回 DDL 格式 JSON 字串的結構描述。 |
schema_of_json_agg(jsonStr[, options]) | 以 DDL 格式返回群組中 JSON 個字串的合併結構描述。 |
to_json(expr[, options]) | 傳回 JSON 字串,並在 STRUCT 中指定 VARIANT 或 expr 。 |
VARIANT 函式
函式 | 描述 |
---|---|
variantExpr : jsonPath | 傳回使用 JSON 路徑從 variantExpr 擷取的欄位。 |
is_variant_null(variantExpr) | 測試是否 variantExpr 為 VARIANT 編碼的。NULL |
parse_json(jsonStr) | 從 VARIANT 傳回 jsonStr 值。 |
schema_of_variant(variantExpr) | 以 DDL 格式傳回 VARIANT 運算式的結構描述。 |
schema_of_variant_agg(variantExpr) | 以 DDL 格式傳回群組中所有 VARIANT 值的合併結構描述。 |
to_json(expr[, options]) | 傳回 JSON 字串,並在 STRUCT 中指定 VARIANT 或 expr 。 |
try_parse_json(jsonStr) | 可能的話,從 VARIANT 傳回 jsonStr 值。 如果不可能,則會傳回 NULL 。 |
try_variant_get(variantExpr,path,type) | 從 type 所variantExpr 指定的 、擷取 類型的值path ,如果NULL 無法轉換成目標類型,則為。 |
variant_explode(輸入) | 藉由取消巢狀 input 傳回一組資料列。 |
variant_explode_outer(輸入) | 使用外部語意取消巢狀 input 傳回一組資料列。 |
variant_get(variantExpr,path,type) | 從 指定的 type 擷variantExpr 取 類型的值path 。 |
XPath 和 XML 函式
函式 | 描述 |
---|---|
from_xml(xmlStr, schema[, options]) | 傳回使用 xmlStr 解析出來的結構值 schema 。 |
schema_of_xml(xmlStr[, options]) | 傳回 DDL 格式 XML 字串的結構描述。 |
xpath(xml, xpath) | 傳回符合 xml 之 xpath 的節點內的值。 |
xpath_boolean(xml, xpath) | 如果 true 運算式求值為 xpath ,或在 true 中找到相符節點,則傳回 xml 。 |
xpath_double(xml, xpath) | 從 XML 文件傳回 DOUBLE 值。 |
xpath_float(xml, xpath) | 從 XML 文件傳回 FLOAT 值。 |
xpath_int(xml, xpath) | 從 XML 文件傳回 INTEGER 值。 |
xpath_long(xml, xpath) | 從 XML 文件傳回 BIGINT 值。 |
xpath_number(xml, xpath) | 從 XML 文件傳回 DOUBLE 值。 |
xpath_short(xml, xpath) | 從 XML 文件傳回 SHORT 值。 |
xpath_string(xml, xpath) | 傳回第一個符合 XPath 運算式之 XML 節點的內容。 |
AI 函式
函式 | 描述 |
---|---|
ai_analyze_sentiment(content) | 傳回文字的情感。 |
ai_classify(content, labels) | 將提供的內容分類為其中一個提供的標籤。 |
ai_extract(content, labels) | 從指定的文字擷取由標籤指定的實體。 |
ai_fix_grammar(content) | 更正指定文字中的文法錯誤。 |
ai_forecast(observed, time_col) | 將時間序列資料解脫到未來。 |
ai_gen(content) | 從 Databricks Foundation 模型 API 叫用最先進的產生 AI 模型,以回覆使用者提供的提示。 |
ai_generate_text(prompt, modelName[, param1, value1] […]) | 已被取代:傳回指定提示時,由選取的大型語言模型 (LLM) 產生的文字。 |
ai_mask(content, labels) | 遮罩指定文字中的指定實體。 |
ai_query(endpointName, request, returnType) | 叫用現有的 Mosaic AI 模型服務端點並剖析並傳回其回覆。 |
ai_similarity(strExpr1, strExpr2) | 比較兩個字串,並計算語意相似度分數。 |
ai_summarize(content[, max_words]) | 產生指定文字的摘要。 |
ai_translate(content, to_lang) | 將文字翻譯成指定的目標語言。 |
vector_search(index, query, num_results) | 使用 SQL 查詢 Mosaic AI 向量搜尋索引。 |
讀取函式
函式 | 描述 |
---|---|
read_files(path, [optionKey => optionValue] [, …]) | 讀取雲端記憶體上的資料檔,並以表格式格式傳回。 |
read_kafka([optionKey => optionValue] [, …]) | 從 Apache Kafka 叢集讀取記錄,並以表格式傳回記錄。 |
read_kinesis({parameter => value} [, …]) | 傳回包含從 Kinesis 讀取的一個或多個串流記錄的資料表。 |
read_pubsub([parameter => value] [, …]) | 從主題讀取 Pub/Sub 記錄的資料表值函式。 |
read_pulsar({optionKey => optionValue} [, …]) | 傳回資料表,其中包含從 Pulsar 讀取的記錄。 |
read_state_metadata(path) | 傳回資料表,其中包含代表串流查詢狀態中繼資料的資料列。 |
read_statestore(path [, option_key => option_value] […]) | 從串流查詢的狀態存放區傳回記錄。 |
其他函式
函式 | 描述 |
---|---|
assert_true(expr) | 如果 expr 不是 true,則傳回錯誤。 |
CASE expr { WHEN opt1 THEN res1 } […] [ELSE def] END | 如果前 resN 個都等於 optN ,則傳回 expr ;如果都不符合,則傳回 def 。 |
CASE { WHEN cond1 THEN res1 } […] [ELSE def] END | 如果前 resN 個評估為 True,則傳回 condN ;如果找不到,則傳回 def 。 |
cloud_files_state( { TABLE(table) | checkpoint } ) | 傳回自動載入器 cloud_files 來源的檔案層級狀態。 |
coalesce(expr1, expr2 [, …]) | 傳回第一個非 Null 引數。 |
定序() | 傳回可用定序的清單。 |
cube (expr1 [, …]) | 使用指定的運算式資料行建立多維度 Cube。 |
current_catalog() | 傳回目前的目錄。 |
current_database() | 傳回目前的結構描述。 |
current_metastore() | 傳回目前的 Unity 目錄中繼存放區識別碼。 |
current_recipient(key) | 傳回與 Delta Sharing 共用之檢視中目前收件者的屬性。 |
current_schema() | 傳回目前的結構描述。 |
current_user() | 傳回執行陳述式的使用者。 |
current_version() | 傳回目前版本的 Azure Databricks。 |
decode(expr, { key, value } [, …] [,defValue]) | 傳回符合索引鍵的值。 |
elt(index, expr1 [, …] ) | 傳回第 n 個運算式。 |
equal_null(expr1, expr2) | 如果 true 等於 expr1 或兩個運算式都是 expr2 ,則傳回 NULL ,否則傳回 false 。 |
event_log( { TABLE(table) | pipeline_id } ) | 傳回具體化檢視、串流資料表或 DLT 管線之重新整理記錄的資料表。 |
greatest(expr1, expr2 [, …]) | 傳回所有引數的最大值,略過 Null 值。 |
grouping(col) | 指出、 GROUPING SET 或 ROLLUP 中的CUBE 指定資料行是否代表小計。 |
grouping_id([col1 [, …]]) | 傳回一組資料行群組的層級。 |
hash(expr1 [, …]) | 傳回引數的雜湊值。 |
hll_sketch_estimate(expr) | 估計 HyperLogLog 草圖中收集的相異值數目。 |
hll_union(expr1, expr2 [,allowDifferentLgConfigK]) | 結合兩個 HyperLogLog 草圖。 |
java_method(class, method[, arg1 [, …]]) | 呼叫具有反映的方法。 |
if(cond, expr1, expr2) | 如果 expr1 為 cond ,則傳回 true ,否則傳回 expr2 。 |
iff(cond, expr1, expr2) | 如果 expr1 為 cond ,則傳回 true ,否則傳回 expr2 。 |
ifnull(expr1, expr2) | 如果 expr2 為 expr1 ,則傳回 NULL ,否則傳回 expr1 。 |
input_file_block_length() | 傳回所讀取區塊的位元組長度。 |
input_file_block_start() | 傳回所讀取區塊位元組的開始位移。 |
input_file_name() | 傳回正在讀取的檔名,如果無法使用,則傳回空字串。 |
is_account_group_member(group) | 如果目前使用者是帳戶層級的群組成員,則傳回 true。 |
is_member(group) | 如果目前使用者是工作區層級群組的成員,則傳回 true。 |
isnull(expr) | 如果 true 為 expr ,則傳回 NULL 。 |
isnotnull(expr) | 如果 true 不是 expr ,則傳回 NULL 。 |
least(expr1, expr2 [, …]) | 傳回所有引數的最小值,略過 Null 值。 |
list_secrets([scopeStr]) | 傳回使用者有權從 Databricks 祕密服務查看的所有或一個範圍中的密鑰。 |
luhn_check(numStr) | 如果 true 透過 numStr 檢查,則傳回 。 |
monotonically_increasing_id() | 傳回單調遞增的 64 位元整數。 |
nullif(expr1, expr2) | 如果 NULL 等於 expr1 ,則傳回 expr2 ,否則傳回 expr1 。 |
nvl(expr1, expr2) | 如果 expr2 為 expr1 ,則傳回 NULL ,否則傳回 expr1 。 |
nvl2(expr1, expr2, expr3) | 如果 expr2 不是 expr1 ,則傳回 NULL ,否則傳回 expr3 。 |
raise_error(expr) | 擲回例外,expr 做為訊息。 |
range(end) | 傳回指定範圍內值的資料表。 |
range(start, end [, step [, numParts]]) | 傳回指定範圍內值的資料表。 |
reflect(class, method[, arg1 [, …]]) | 呼叫具有反映的方法。 |
secret(scope, key) | 使用指定的 scope 和 key 從 Databricks 祕密服務擷取祕密值。 |
session_user() | 傳回連線至 Azure Databricks 的使用者。 |
spark_partition_id() | 傳回目前的分割區標識碼。 |
sql_keywords() | 傳回 Azure Databricks 中的一組 SQL 關鍵詞。 |
stack(numRows, expr1 [, …]) | 將 expr1 、 ..., exprN 分隔成 numRows 資料列。 |
table_changes(table_str, start [, end]) | 傳回已啟用變更資料摘要之 Delta Lake 資料表的變更記錄。 |
try_reflect(class, method[, arg1 [, …]]) | 呼叫反映的方法,如果方法失敗,則傳回 NULL 。 |
try_secret(scope, key) | 從 Databricks 祕密服務擷取具有指定 scope 和 key 的祕密值,如果NULL 無法擷取金鑰,則為。 |
typeof(expr) | 傳回 expr 的資料類型 DDL 格式類型字串。 |
user() | 傳回執行陳述式的使用者。 |
uuid() | 傳回通用唯一標識碼 (UUID) 字串。 |
window(expr, width[, step [, start]]) | 在時間戳記運算式上建立以跳動為基礎的滑動視窗。 |
xxhash64(expr1 [, …]) | 傳回參數的 64 位元雜湊值。 |
version() | 傳回 Apache Spark 版本。 |