本頁提供 Databricks 上可用的 PySpark SQL 函式清單,並連結至相應的參考文件。
正規函數
| 功能 | Description |
|---|---|
broadcast(df) |
將資料框架標記為足夠小,適用於廣播連接。 |
call_function(funcName, *cols) |
呼叫一個 SQL 函式。 |
col(col) |
根據給定的欄位名稱回傳一個欄位。 |
column(col) |
根據給定的欄位名稱回傳一個欄位。 |
lit(col) |
產生一個具有實質價值的欄位。 |
expr(str) |
解析表達式字串到它所代表的欄位 |
條件式函式
| 功能 | Description |
|---|---|
coalesce(*cols) |
回傳第一個非空欄位。 |
ifnull(col1, col2) |
若 col1 為空,則回傳 col2,否則回傳 col1。 |
nanvl(col1, col2) |
如果不是NaN,則回傳col1;如果col1是NaN,則回傳col2。 |
nullif(col1, col2) |
若 col1 等於 col2,則回傳 null,否則 col1。 |
nullifzero(col) |
若 col 等於零,則返回 null,否則返回 col。 |
nvl(col1, col2) |
若 col1 為空,則回傳 col2,否則回傳 col1。 |
nvl2(col1, col2, col3) |
若 col1 非空,則回傳 col2;否則回傳 col3。 |
when(condition, value) |
評估一份條件清單,並傳回多個可能的結果運算式之一。 |
zeroifnull(col) |
若 col 為空,則回傳 0;否則回傳 col。 |
模式匹配功能
| 功能 | Description |
|---|---|
equal_null(col1, col2) |
對於非空運算元,回傳與 EQUAL(=) 運算子相同的結果,但若兩者皆為空,則回傳真;若其中一為空,則為假。 |
ilike(str, pattern[, escapeChar]) |
若 str 與 escape 無區分大小寫的模式相符,則回傳真;若任何參數為空,則回傳 null;否則回傳 false。 |
isnan(col) |
判斷欄位是否為 NaN 的運算式,若為真則回傳 true。 |
isnotnull(col) |
若 col 非空,則返回真,否則為假。 |
isnull(col) |
若欄位為空,則回傳為真的表達式。 |
like(str, pattern[, escapeChar]) |
若 str 與 escape 模式相符,則回傳 true;若任何參數為空,則回傳 null;否則回傳 false。 |
regexp(str, regexp) |
如果 str 與 Java 正則表達式相符,則回傳 true;否則回傳 false。 |
regexp_like(str, regexp) |
如果 str 與 Java 正則表達式相符,則回傳 true;否則回傳 false。 |
rlike(str, regexp) |
如果 str 與 Java 正則表達式相符,則回傳 true;否則回傳 false。 |
排序函數
| 功能 | Description |
|---|---|
asc(col) |
會回傳目標欄位的排序表達式,依序由高到低。 |
asc_nulls_first(col) |
回傳依據給定欄位名稱由低到高排序的排序表達式,且在非空值之前回傳 null 值。 |
asc_nulls_last(col) |
回傳一個基於欄位名稱遞增順序的排序表達式,非空值之後會出現空值。 |
desc(col) |
會回傳目標欄位的排序運算式,依降序排列。 |
desc_nulls_first(col) |
回傳基於欄位名稱由低至低排序的排序表達式,且空值出現在非空值之前。 |
desc_nulls_last(col) |
回傳一個基於欄位名稱遞減順序的排序運算式,非空值後方會出現空值。 |
數學函式
| 功能 | Description |
|---|---|
abs(col) |
計算給定欄位或表達式的絕對值。 |
acos(col) |
計算給定欄位或表達式的反餘弦(亦稱弧餘弦)。 |
acosh(col) |
計算給定欄或表達式的反雙曲餘弦(亦稱為 arcosh)。 |
asin(col) |
計算輸入欄位的逆正弦值。 |
asinh(col) |
計算輸入列的反雙曲正弦。 |
atan(col) |
計算輸入欄位的反切線。 |
atan2(col1, col2) |
計算平面正x軸與座標給出點之間的弧度角 |
atanh(col) |
計算輸入欄位的逆雙曲切線。 |
bin(col) |
回傳給定欄位二進位值的字串表示。 |
bround(col[, scale]) |
若比例 >大於或等於 0,則使用 HALF_EVEN 四捨五入模式將給定值四捨五入至小數位數;若比例 <小於 0,則在整數部分四捨五入。 |
cbrt(col) |
計算給定值的立方根。 |
ceil(col[, scale]) |
計算給定值的上限。 |
ceiling(col[, scale]) |
計算給定值的上限。 |
conv(col, fromBase, toBase) |
將字串欄位中的數字從一個底數轉換成另一個底數。 |
cos(col) |
計算輸入欄位的餘弦值。 |
cosh(col) |
計算輸入列的雙曲餘弦。 |
cot(col) |
計算輸入欄位的餘切線。 |
csc(col) |
計算輸入欄的餘割。 |
degrees(col) |
將以弧度計算的角度轉換為以度為單位的近似等效角度。 |
e() |
回傳歐拉數。 |
exp(col) |
計算給定值的指數。 |
expm1(col) |
計算給定值減一的指數。 |
factorial(col) |
計算給定值的階乘。 |
floor(col[, scale]) |
計算給定值的底線。 |
greatest(*cols) |
回傳欄位名稱清單中最大值,跳過空值。 |
hex(col) |
計算給定欄位的十六進位值,該欄位可以是 StringType、 BinaryType、 IntegerType 或 LongType。 |
hypot(col1, col2) |
計算sqrt(a^2 + b^2)時,沒有發生中間溢位或下溢位。 |
least(*cols) |
回傳欄位名稱清單中最小值,跳過空值。 |
ln(col) |
返回論元的自然對數。 |
log(arg1[, arg2]) |
回傳第二個參數以第一個參數為底的對數。 |
log10(col) |
計算給定值的以10為底的對數。 |
log1p(col) |
計算給定值加一的自然對數。 |
log2(col) |
回傳該參數的底數為2的對數。 |
negate(col) |
回傳負值。 |
negative(col) |
回傳負值。 |
pi() |
回歸圓周率。 |
pmod(dividend, divisor) |
回傳股息除數的正值。 |
positive(col) |
傳回值。 |
pow(col1, col2) |
將第一個提出參數的值回傳為第二個參數的冪次。 |
power(col1, col2) |
將第一個提出參數的值回傳為第二個參數的冪次。 |
radians(col) |
將以度數計的角度轉換為以弧度計的近似角度。 |
rand([seed]) |
產生隨機欄位,樣本獨立且分布相同(i.i.d.),均勻分布於 [0.0, 1.0]。 |
randn([seed]) |
產生一個隨機欄位,樣本來自標準常態分布,樣本獨立且分布相同(i.i.d.)。 |
rint(col) |
回傳與參數值最接近且等於數學整數的雙重值。 |
round(col[, scale]) |
若小數位數 >= 0,則使用HALF_UP四捨五入模式將給定值四捨五入至指定的小數位數;若小數位數 < 0,則在整數部分進行四捨五入。 |
sec(col) |
計算輸入欄位的正割。 |
sign(col) |
計算給定值的符號。 |
signum(col) |
計算給定值的符號。 |
sin(col) |
計算輸入欄位的正弦值。 |
sinh(col) |
計算輸入欄位的雙曲正弦。 |
sqrt(col) |
計算指定浮點數值的平方根。 |
tan(col) |
計算輸入欄位的切線。 |
tanh(col) |
計算輸入欄位的雙曲切線。 |
try_add(left, right) |
回傳左與右的總和,溢位時結果為零。 |
try_divide(left, right) |
返回股息/除數。 |
try_mod(left, right) |
扣除股息或除數後,還清剩餘部分。 |
try_multiply(left, right) |
回傳左側乘以右側,若溢位則結果為null。 |
try_subtract(left, right) |
回傳左減右的結果,若溢位則結果為空值。 |
unhex(col) |
六角格的反向。 |
uniform(min, max[, seed]) |
回傳一個隨機值,具有獨立且同分布(i.i.d.)的值,且符合指定範圍的數字。 |
width_bucket(v, min, max, numBucket) |
回傳該運算式值在評估後會落入的桶號。 |
字串函數
| 功能 | Description |
|---|---|
ascii(col) |
計算字串欄位第一個字元的數值。 |
base64(col) |
計算二進位欄位的 BASE64 編碼,並以字串欄位回傳。 |
bit_length(col) |
計算指定字串欄位的位元長度。 |
btrim(str[, trim]) |
移除字串前方和後方的修剪字符。 |
char(col) |
回傳 ASCII 字元,其二進位與 col 的值相等。 |
char_length(str) |
傳回字串資料的字元長度或二進位資料的位元組數目。 |
character_length(str) |
傳回字串資料的字元長度或二進位資料的位元組數目。 |
collate(col, collation) |
用指定的排序標記給定欄位。 |
collation(col) |
回傳給定欄位的排序名稱。 |
concat_ws(sep, *cols) |
利用給定的分隔符,將多個輸入字串欄位串接成單一字串欄位。 |
contains(left, right) |
傳回布林值。 |
decode(col, charset) |
利用提供的字元集US-ASCII(其中 、 ISO-8859-1、 UTF-8UTF-16BE、 UTF-16LEUTF-16UTF-32、 )從二進位計算出第一個參數成字串。 |
elt(*inputs) |
回傳第 n 個輸入,例如當 n 為 2 時回傳 input2。 |
encode(col, charset) |
利用提供的字元集(US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16、UTF-32),從字串中將第一個參數轉換為二進位。 |
endswith(str, suffix) |
傳回布林值。 |
find_in_set(str, str_array) |
回傳逗號分隔列表(strArray)中給定字串(str)的索引(以 1 為基礎)。 |
format_number(col, d) |
將數字 X 格式化為像 #,--#,--#.-- 的格式,使用 HALF_EVEN 截尾式捨入模式,四捨五入至 d 位小數,並以字串形式返回結果。 |
format_string(format, *cols) |
以 printf 風格格式化參數,並以字串欄位回傳結果。 |
initcap(col) |
將每個單字的第一個字母翻譯成句子中的大寫字母。 |
instr(str, substr) |
找出 substr 欄位在給定字串中首次出現的位置。 |
is_valid_utf8(str) |
若輸入為有效的 UTF-8 字串,則回傳 true;否則回傳 false。 |
lcase(str) |
返回的字串中所有字元都轉換為小寫。 |
left(str, len) |
從字串 str 回傳最左邊的 len(len 可為字串類型)字元,若 len 小於或等於 0,則為空字串。 |
length(col) |
計算字串資料的字元長度或二進位資料的位元組數。 |
levenshtein(left, right[, threshold]) |
計算兩條給定弦的列文斯坦距離。 |
locate(substr, str[, pos]) |
在 position pos 之後,找出字串欄位中 substr 首次出現的位置。 |
lower(col) |
將字串表達式轉換為小寫。 |
lpad(col, len, pad) |
將字串列用填充符號左側填充至長度 len。 |
ltrim(col[, trim]) |
刪除指定字串值左端的空格。 |
make_valid_utf8(str) |
回傳一個新字串,所有無效的 UTF-8 位元組序列(如有)都被 Unicode 替換字元(U+FFFD)取代。 |
mask(col[, upperChar, lowerChar, digitChar, ...]) |
遮蔽給定字串值。 |
octet_length(col) |
計算指定字串欄位的位元組長度。 |
overlay(src, replace, pos[, len]) |
從 src 的位元組位置 pos 開始,將指定部分疊加 replace,依序進行 len 個位元組。 |
position(substr, str[, start]) |
從位置 start 開始後,回傳 str 中 substr 首次出現的位置。 |
printf(format, *cols) |
以 printf 風格格式化參數,並以字串欄位回傳結果。 |
randstr(length[, seed]) |
回傳一個指定長度的字串,其字元均勻隨機選自以下字元池:0-9、a-z、A-Z。 |
regexp_count(str, regexp) |
回傳 Java 正則表達式模式在字串 str 中被匹配的次數。 |
regexp_extract(str, pattern, idx) |
從指定的字串欄位中,擷取與 Java 正則表達式匹配的特定群組。 |
regexp_extract_all(str, regexp[, idx]) |
擷取 str 中所有符合 Java 正則表達式且對應正則表達式群組的索引的字串。 |
regexp_instr(str, regexp[, idx]) |
回傳 str 中第一個與 Java 正則表達式相符的子字串的位置及其對應的正則表達式群組索引。 |
regexp_replace(string, pattern, replacement) |
將指定字串值中所有與正則表達式相符的子字串替換為新的內容。 |
regexp_substr(str, regexp) |
返回字串 str 中第一個符合 Java 正則表達式 regexp 的子字串。 |
repeat(col, n) |
重複一個字串欄位 n 次,並以新的字串欄位回傳。 |
replace(src, search[, replace]) |
將所有搜尋到的條目替換為指定的內容。 |
right(str, len) |
回傳字串 str 中最右邊的 len(len 可為字串類型)字元,若 len 小於或等於 0,則為空字串。 |
rpad(col, len, pad) |
將字串欄位右側填充至指定寬度。 |
rtrim(col[, trim]) |
從右端去除指定字串值的空格。 |
sentences(string[, language, country]) |
將字串拆分成多個句子陣列,每個句子是一個詞彙陣列。 |
soundex(col) |
回傳一個字串的 SoundEx 編碼 |
split(str, pattern[, limit]) |
將字串按照指定模式的匹配進行分割。 |
split_part(src, delimiter, partNum) |
將 str 以分隔符分割,並返回所請求的分割部分(從 1 開始計數)。 |
startswith(str, prefix) |
傳回布林值。 |
substr(str, pos[, len]) |
回傳從pos開始且長度為len的str子串,或從pos開始且長度為len的位元組陣列切片。 |
substring(str, pos, len) |
當 str 為 String 類型時,子串從 pos 開始,長度為 len;而當 str 為二進位型時,則回傳從 pos 開始且長度為 len 的位元組陣列切片。 |
substring_index(str, delim, count) |
回傳字串 str 中在分隔符 delim 出現次數達到 count 之前的子字串。 |
to_binary(col[, format]) |
根據所提供格式,將輸入 col 轉換為二進位值。 |
to_char(col, format) |
根據格式將 col 轉換成字串。 |
to_number(col, format) |
將字串「col」根據字串格式「format」轉換為數字。 |
to_varchar(col, format) |
根據格式將 col 轉換成字串。 |
translate(srcCol, matching, replace) |
將 srcCol 中的任意字元替換為匹配中的對應字元。 |
trim(col[, trim]) |
將指定字串欄位兩端的空格修剪。 |
try_to_binary(col[, format]) |
嘗試執行該 to_binary 操作,但若無法執行轉換,請回傳 NULL 值,而非產生錯誤。 |
try_to_number(col, format) |
根據字串格式col將字串format轉換為數字。 |
try_validate_utf8(str) |
若輸入值對應有效的 UTF-8 字串,則回傳;否則回傳 NULL。 |
ucase(str) |
回傳將所有字元轉換為大寫的字串。 |
unbase64(col) |
解碼一個 BASE64 編碼的字串欄位,並以二進位欄位回傳。 |
upper(col) |
將字串表達式轉換為大寫。 |
validate_utf8(str) |
若輸入值對應於有效的 UTF-8 字串,則回傳;否則會產生錯誤。 |
位元函數
| 功能 | Description |
|---|---|
bit_count(col) |
回傳參數 expr 中設定為無符號 64 位元整數的位元數,若參數為 NULL,則為 NULL。 |
bit_get(col, pos) |
回傳指定位置位元(0 或 1)的值。 |
bitwise_not(col) |
按位元計算 不是。 |
getbit(col, pos) |
回傳指定位置位元(0 或 1)的值。 |
shiftleft(col, numBits) |
將給定值向左移 numbits。 |
shiftright(col, numBits) |
(簽名)將給定值 numBits 向右移動。 |
shiftrightunsigned(col, numBits) |
未符號的值 numBits 向右移位。 |
日期/時間函數
| 功能 | Description |
|---|---|
add_months(start, months) |
回傳入職數月後的日期。 |
convert_timezone(sourceTz, targetTz, sourceTs) |
將無時區 sourceT 的時間戳從 sourceTz 時區轉換成 targetTz。 |
curdate() |
以 DateType 欄位回傳查詢評估開始時的當前日期。 |
current_date() |
以 DateType 欄位回傳查詢評估開始時的當前日期。 |
current_timestamp() |
在查詢評估開始時,會以 TimestampType 欄位回傳當前時間戳。 |
current_timezone() |
傳回當前會話的本地時區。 |
date_add(start, days) |
回傳開始後幾天的日期。 |
date_diff(end, start) |
回傳從開始到結束的天數。 |
date_format(date, format) |
將日期/時間戳/字串轉換為第二個參數所指定的日期格式的字串值。 |
date_from_unix_date(days) |
根據自1970年1月1日起的天數建立日期。 |
date_part(field, source) |
擷取部分日期/時間戳或區間來源。 |
date_sub(start, days) |
回傳開工前幾天的日期。 |
date_trunc(format, timestamp) |
返回格式中指定的單位的截斷時間戳記。 |
dateadd(start, days) |
回傳開始後幾天的日期。 |
datediff(end, start) |
回傳從開始到結束的天數。 |
datepart(field, source) |
擷取部分日期/時間戳或區間來源。 |
day(col) |
從某個日期/時間戳記中提取該月的日期作為整數。 |
dayname(col) |
回傳給定日期的三字母縮寫日名。 |
dayofmonth(col) |
從某個日期/時間戳記中提取該月的日期作為整數。 |
dayofweek(col) |
將某個日期/時間戳的星期幾抽取為整數。 |
dayofyear(col) |
將某個日期/時間戳的年份中的某一天提取為整數。 |
extract(field, source) |
擷取部分日期/時間戳或區間來源。 |
from_unixtime(timestamp[, format]) |
將 Unix 紀元(1970-01-01 00:00:00 UTC)的秒數轉換為代表該系統時區該時刻時間戳記的字串,並以該格式呈現。 |
from_utc_timestamp(timestamp, tz) |
這是支援 TIMESTAMP 且不 TIMEZONE包含 的資料庫常見函數。 |
hour(col) |
將給定時間戳的小時抽取為整數。 |
last_day(date) |
回傳該日期所屬月份的最後一天。 |
localtimestamp() |
在查詢評估開始時,回傳無時區的當前時間戳記,作為無時區欄位。 |
make_date(year, month, day) |
回傳一個由年份、月份和日數欄位構成的日期欄。 |
make_dt_interval([days, hours, mins, secs]) |
將 DayTimeIntervalType 的長度從天、小時、分鐘和秒組成。 |
make_interval([years, months, weeks, days, ...]) |
創建從年、月、週、天、小時、分鐘和秒的間隔。 |
make_timestamp(years, months, days, hours, ...) |
從年份、月份、天、小時、分鐘、秒及時區欄位中建立時間戳記。 |
make_timestamp_ltz(years, months, days, ...) |
請用當地時區建立當前時間戳,包含年份、月份、天、小時、分鐘、秒和時區欄位。 |
make_timestamp_ntz(years, months, days, ...) |
從年份、月份、天、小時、分鐘、秒欄位中建立本地日期時間。 |
make_ym_interval([years, months]) |
從年、月之間做年月間隔。 |
minute(col) |
將特定時間戳記的分鐘數擷取為整數。 |
month(col) |
將某個日期/時間戳的月份抽取為整數。 |
monthname(col) |
回傳給定日期的三字母縮寫月份名稱。 |
months_between(date1, date2[, roundOff]) |
返回日期1與日期2之間的月份數。 |
next_day(date, dayOfWeek) |
回傳第一個日期,該日期比日期欄位的值晚,基於第二個平日參數。 |
now() |
傳回查詢評估開始時的目前時間戳記。 |
quarter(col) |
從給定的日期/時間戳中提取季度,以整數形式顯示。 |
second(col) |
將某個日期的秒數抽取為整數。 |
session_window(timeColumn, gapDuration) |
根據指定的時間戳記欄位,產生會話視窗。 |
timestamp_add(unit, quantity, ts) |
透過截斷分數部分,計算指定單位時間戳之間的差值。 |
timestamp_diff(unit, start, end) |
透過截斷分數部分,計算指定單位時間戳之間的差值。 |
timestamp_micros(col) |
根據自UTC紀元以來的微秒數產生時間戳記。 |
timestamp_millis(col) |
從UTC紀元以來的毫秒數產生時間戳記。 |
timestamp_seconds(col) |
將 Unix 紀元(1970-01-01T00:00:00Z)的秒數轉換為時間戳記。 |
to_date(col[, format]) |
將列轉換為 pyspark.sql.types.DateType,使用可選的格式。 |
to_timestamp(col[, format]) |
將列轉換為 pyspark.sql.types.TimestampType,並可選用指定的格式。 |
to_timestamp_ltz(timestamp[, format]) |
將格式化的時間戳解析成包含時區的時間戳。 |
to_timestamp_ntz(timestamp[, format]) |
將時間戳記根據格式解析為沒有時區的時間戳記。 |
to_unix_timestamp(timestamp[, format]) |
回傳給定時間的 UNIX 時間戳記。 |
to_utc_timestamp(timestamp, tz) |
這是支援 TIMESTAMP 且不 TIMEZONE包含 的資料庫常見函數。 |
trunc(date, format) |
返回的日期會被截短到格式所指定的單位。 |
try_make_interval([years, months, weeks, ...]) |
嘗試執行操作 make_interval ,但如果無法建立區間,則回傳 NULL 值,而不是產生錯誤。 |
try_make_timestamp(years, months, days, ...) |
試著從年、月、天、小時、分鐘、秒和時區欄位中建立時間戳。 |
try_make_timestamp_ltz(years, months, days, ...) |
試著利用本地時區,從年份、月份、天、小時、分鐘、秒和時區欄位中建立目前時間戳記。 |
try_make_timestamp_ntz(years, months, days, ...) |
試著從年、月、天、小時、分鐘、秒等欄位中建立本地日期時間。 |
try_to_timestamp(col[, format]) |
解析 col 與格式並標註時間戳記。 |
unix_date(col) |
回傳自1970-01-01以來的天數。 |
unix_micros(col) |
回傳自 1970-01-01 00:00:00 UTC 以來的微秒數。 |
unix_millis(col) |
回傳自 1970-01-01 00:00:00 UTC 以來的毫秒數。 |
unix_seconds(col) |
回傳自 1970-01-01 00:00:00 UTC 以來的秒數。 |
unix_timestamp([timestamp, format]) |
給定時間字串的格式(預設為 'yyyy-MM-dd HH:mm:ss')轉換成 Unix 時間戳記(秒為單位),使用預設時區和預設區域設置,若轉換失敗則回傳 null。 |
weekday(col) |
回傳星期幾以取得日期/時間戳記(0 = 星期一,1 = 星期二,...,6 = 星期日)。 |
weekofyear(col) |
將某個日期的週數抽取為整數。 |
window(timeColumn, windowDuration[, ...]) |
將列分成一個或多個指定時間點欄位的時間視窗。 |
window_time(windowColumn) |
從視窗欄位計算事件時間。 |
year(col) |
將某個日期/時間戳的年份抽取為整數。 |
雜湊函數
| 功能 | Description |
|---|---|
crc32(col) |
計算二進位欄位的循環冗餘檢查值(CRC32),並以大整數形式回傳。 |
hash(*cols) |
計算給定欄位的雜湊碼,並以整數欄位回傳結果。 |
md5(col) |
計算 MD5 摘要,並回傳 32 字元十六進位字串的值。 |
sha(col) |
回傳 col 的 sha1 雜湊值,並以十六進位字串形式顯示。 |
sha1(col) |
回傳 SHA-1 的十六進位字串結果。 |
sha2(col, numBits) |
回傳 SHA-2 雜湊函數家族(SHA-224、SHA-256、SHA-384 及 SHA-512)的十六進位字串結果。 |
xxhash64(*cols) |
利用 xxHash 演算法的 64 位元變體計算給定欄位的雜湊碼,並以長欄位回傳結果。 |
集合函數
| 功能 | Description |
|---|---|
aggregate(col, initialValue, merge[, finish]) |
對初始狀態及陣列中所有元素套用二進位運算子,並將其簡化為單一狀態。 |
array_sort(col[, comparator]) |
會依輸入陣列從高到低排序。 |
cardinality(col) |
回傳儲存在該欄的陣列或映射的長度。 |
concat(*cols) |
將多個輸入欄位串接成單一欄位。 |
element_at(col, extraction) |
回傳陣列中指定的 (以1為基底) 索引位置的元素。 |
exists(col, f) |
回傳一個謂詞是否對陣列中的一個或多個元素成立。 |
filter(col, f) |
回傳給定陣列中符合篩選條件的元素陣列。 |
forall(col, f) |
回傳陣列中每個元素是否符合謂詞。 |
map_filter(col, f) |
回傳一個新的映射欄位,其鍵值對滿足給定的謂詞函數。 |
map_zip_with(col1, col2, f) |
透過對鍵值對套用函數,將兩個給定映射合併為單一映射。 |
reduce(col, initialValue, merge[, finish]) |
對初始狀態及陣列中所有元素套用二進位運算子,並將其簡化為單一狀態。 |
reverse(col) |
回傳一個反向字串或元素順序相反的陣列。 |
size(col) |
回傳儲存在該欄的陣列或映射的長度。 |
transform(col, f) |
在對輸入陣列中的每個元素進行轉換後,會回傳一個元素陣列。 |
transform_keys(col, f) |
對映射中的每個鍵值對套用函數,並回傳帶有這些應用結果的映射作為對的新鍵。 |
transform_values(col, f) |
對映射中的每個鍵值對套用函式,並回傳一個新的映射,其中這些應用的結果作為鍵值對的新值。 |
try_element_at(col, extraction) |
回傳陣列中位於(以 1 為基礎)給定索引位置的元素。 |
zip_with(left, right, f) |
用函式將兩個給定的陣列按元素合併成一個陣列。 |
陣列函數
| 功能 | Description |
|---|---|
array(*cols) |
從輸入欄位或欄位名稱建立新的陣列欄位。 |
array_append(col, value) |
透過在現有陣列 col 上附加值,回傳新的陣列欄位。 |
array_compact(col) |
移除陣列中的空值。 |
array_contains(col, value) |
回傳一個布林值,表示陣列是否包含給定值:若陣列為空,則為 True;若陣列包含該值,則為 true;否則為 false。 |
array_distinct(col) |
移除陣列中的重複值。 |
array_except(col1, col2) |
回傳一個包含 col1 中存在但不在 col2 中元素的新陣列,且無重複。 |
array_insert(arr, pos, value) |
在指定的陣列索引下插入一個項目。 |
array_intersect(col1, col2) |
回傳一個包含 col1 與 col2 元素交集的新陣列,且無重複。 |
array_join(col, delimiter[, null_replacement]) |
透過分隔符將輸入陣列欄位的元素串接,回傳字串欄位。 |
array_max(col) |
回傳陣列的最大值。 |
array_min(col) |
回傳陣列的最小值。 |
array_position(col, value) |
定位該值首次出現於指定陣列的位置。 |
array_prepend(col, value) |
回傳一個陣列,包含給定元素作為第一個元素,並包含原始陣列中其餘元素。 |
array_remove(col, element) |
從給定陣列中移除所有等於元素的元素。 |
array_repeat(col, count) |
建立一個包含重複計數次數欄位的陣列。 |
array_size(col) |
回傳陣列中元素的總數。 |
array_union(col1, col2) |
回傳一個包含 col1 與 col2 元素聯集且無重複的新陣列。 |
arrays_overlap(a1, a2) |
回傳一個布林欄位,表示輸入陣列是否有共同的非空元素;若有則回傳真;若陣列中沒有共同元素但非空且至少有一個包含空元素,則回傳為 Null;否則為假。 |
arrays_zip(*cols) |
回傳一個合併的結構體陣列,其中第 N 個結構體包含所有第 N 個輸入陣列的值。 |
flatten(col) |
從多個陣列建立一個單一陣列。 |
get(col, index) |
回傳陣列中位於指定索引(以 0 為起點)的元素。 |
sequence(start, stop[, step]) |
從開始到結束產生一列整數,逐步遞增。 |
shuffle(col[, seed]) |
產生給定陣列的隨機排列。 |
slice(x, start, length) |
透過將輸入陣列欄位從起始索引切片到特定長度,回傳新的陣列欄位。 |
sort_array(col[, asc]) |
根據陣列元素的自然順序,將輸入陣列依升序或降序排序。 |
結構函數
| 功能 | Description |
|---|---|
named_struct(*cols) |
建立一個包含欄位名稱與值的結構體。 |
struct(*cols) |
建立一個新的結構體欄位。 |
地圖功能
| 功能 | Description |
|---|---|
create_map(*cols) |
從偶數個輸入欄位或欄位參考中建立一個新的映射欄位。 |
map_concat(*cols) |
回傳所有給定映射的聯集。 |
map_contains_key(col, value) |
若映射包含 鍵,則回傳為真。 |
map_entries(col) |
回傳給定映射中所有條目的無序陣列。 |
map_from_arrays(col1, col2) |
從兩個陣列建立一個新映射表。 |
map_from_entries(col) |
將一組鍵值對的元素(有兩個欄位的結構體)轉換成一個映射。 |
map_keys(col) |
回傳一個包含映射物件鍵值的無序數組。 |
map_values(col) |
回傳一個包含映射中所有數值且無順序的陣列。 |
str_to_map(text[, pairDelim, keyValueDelim]) |
將字串轉換為映射,並使用分隔符將文字分割成鍵值對。 |
聚合函數
| 功能 | Description |
|---|---|
any_value(col[, ignoreNulls]) |
回傳一組列的 col 值。 |
approx_count_distinct(col[, rsd]) |
回傳一個新的欄位,估計指定欄位或一組欄位中元素的近似不同數量。 |
approx_percentile(col, percentage[, accuracy]) |
回傳數值欄位 col 的近似百分位數,該欄位為排序的 col 值中最小值(由最小到最大排序),且 col 值中不超過該值的百分比。 |
array_agg(col) |
回傳一份帶有重複物件的清單。 |
avg(col) |
傳回群組中值的平均值。 |
bit_and(col) |
回傳所有非空輸入值的位元運算 AND 結果,若沒有非空輸入值則回傳空值。 |
bit_or(col) |
回傳所有不為空輸入值的按位或,若沒有則回傳空值。 |
bit_xor(col) |
回傳所有非空值的位元運算 XOR 結果;若無非空值則回傳空值。 |
bitmap_construct_agg(col) |
回傳一個位元位置圖,這些位元是從輸入欄位的所有值中設定出來的。 |
bitmap_or_agg(col) |
回傳一個位圖,此位圖是輸入欄位中的所有位圖進行位元 OR 運算的結果。 |
bool_and(col) |
如果所有 col 值都為真,則會回傳 true。 |
bool_or(col) |
若至少有一個col值為真,則會回傳為真。 |
collect_list(col) |
將欄位中的值收集成清單,維持重複值,並回傳此物件清單。 |
collect_set(col) |
將欄位的值收集成集合,消除重複,並回傳這組物件。 |
corr(col1, col2) |
回傳 col1 與 col2 的 Pearson 相關係數新欄位。 |
count(col) |
傳回群組中的項目數。 |
count_distinct(col, *cols) |
回傳新的欄位以獲取欄位或欄位組的不同計數。 |
count_if(col) |
回傳該山坳的真實值數量。 |
count_min_sketch(col, eps, confidence[, seed]) |
回傳欄位的計數最小草圖,包含給定的 ESP、信心度和種子。 |
covar_pop(col1, col2) |
回傳一個新的欄位,用於表示 col1 和 col2 之間的族群協方差。 |
covar_samp(col1, col2) |
回傳一個新的欄位,以計算 col1 與 col2 的樣本協變性。 |
every(col) |
如果所有 col 值都為真,則會回傳 true。 |
first(col[, ignorenulls]) |
回傳群組中的第一個值。 |
first_value(col[, ignoreNulls]) |
回傳一組列的第一個 col 值。 |
grouping(col) |
表示列表中指定欄位 GROUP BY 是否被彙總,匯總時回傳 1,未彙總則回傳 0。 |
grouping_id(*cols) |
返回分組層級,等於 |
histogram_numeric(col, nBins) |
利用 nb bin 計算數字「col」的直方圖。 |
hll_sketch_agg(col[, lgConfigK]) |
回傳由 lgConfigK 參數配置的可更新 Datasketches HllSketch 的二進位表示。 |
hll_union_agg(col[, allowDifferentLgConfigK]) |
回傳可更新的 Datasketches HllSketch 二進位表示,該表示是透過 Datasketches Union 實例合併先前建立的 Datasketches HllSketch 實例所產生。 |
kurtosis(col) |
返回一組數值的峰度。 |
last(col[, ignorenulls]) |
回傳群組中的最後一個值。 |
last_value(col[, ignoreNulls]) |
回傳一組列的 col 最後值。 |
listagg(col[, delimiter]) |
回傳非空輸入值的串接,並以分隔符分隔。 |
listagg_distinct(col[, delimiter]) |
回傳由分隔符分隔的不同非空輸入值的串接。 |
max(col) |
返回該組中表達式的最大值。 |
max_by(col, ord) |
回傳與 ord 參數最大值相關的 col 參數值。 |
mean(col) |
傳回群組中值的平均值。 |
median(col) |
回傳群組中各值的中位數。 |
min(col) |
回傳該群中表達式的最小值。 |
min_by(col, ord) |
回傳與 ord 參數最小值相關的 col 參數值。 |
mode(col[, deterministic]) |
回傳群組中最常見的值。 |
percentile(col, percentage[, frequency]) |
回傳數值欄位表達式在指定百分比下的精確百分位數,值範圍為 [0.0, 1.0]。 |
percentile_approx(col, percentage[, accuracy]) |
回傳數值欄位 col 的近似百分位數,該欄位為排序的 col 值中最小值(由最小到最大排序),且 col 值中不超過該值的百分比。 |
product(col) |
回傳群組中各值的乘積。 |
regr_avgx(y, x) |
回傳組中非空對自變數的平均值,在其中 y 為依變數,x 為自變數。 |
regr_avgy(y, x) |
回傳群組中非空對的因變數平均值,其中 y 為依變數,x 為自變數。 |
regr_count(y, x) |
回傳一組中非零數對的數量,其中 y 為依變數,x 為自變數。 |
regr_intercept(y, x) |
回傳在一組資料中非空值對的單變量線性迴歸線截距,其中 y 為依變數,x 為自變數。 |
regr_r2(y, x) |
回傳群組中非空對的決定係數,其中 y 為依變數,x 為自變數。 |
regr_slope(y, x) |
回傳一組中非空值組的線性回歸線斜率,其中 y 為依變數,x 為自變數。 |
regr_sxx(y, x) |
對於群中非零對,回傳 REGR_COUNT(y, x) * VAR_POP(x),其中 y 為依變數,x 為自變數。 |
regr_sxy(y, x) |
對於群中非零對,回傳 REGR_COUNT(y, x) * COVAR_POP(y, x),其中 y 為依變數,x 為自變數。 |
regr_syy(y, x) |
對於群中非零對,回傳 REGR_COUNT(y, x) * VAR_POP(y) ,其中 y 為依變數,x 為自變數。 |
skewness(col) |
回傳群組中值的偏態。 |
some(col) |
若至少有一個col值為真,則會回傳為真。 |
std(col) |
stddev_samp 的別名。 |
stddev(col) |
stddev_samp 的別名。 |
stddev_pop(col) |
回傳群體中表達式的母體標準差值。 |
stddev_samp(col) |
回傳該組中表達式的無偏樣本標準差。 |
string_agg(col[, delimiter]) |
回傳非空輸入值的串接,並以分隔符分隔。 |
string_agg_distinct(col[, delimiter]) |
回傳由分隔符分隔的不同非空輸入值的串接。 |
sum(col) |
回傳表達式中所有值的總和。 |
sum_distinct(col) |
回傳表達式中不同值的總和。 |
try_avg(col) |
回傳從群組值計算出的平均值,結果在溢位時為零。 |
try_sum(col) |
回傳從群組值計算出的總和,溢位時結果為零。 |
var_pop(col) |
回傳群組中各值的母體變異數。 |
var_samp(col) |
回傳群組中數值的無偏樣本變異數。 |
variance(col) |
別名 var_samp |
視窗函數
| 功能 | Description |
|---|---|
cume_dist() |
回傳視窗分割內數值的累積分布,即低於當前列的列比例。 |
dense_rank() |
回傳視窗區隔內列的排名,且該排名沒有任何空隙。 |
lag(col[, offset, default]) |
回傳在當前列之前的指定偏移列的值;若在當前列前的偏移列數少於指定數量,則回傳預設值。 |
lead(col[, offset, default]) |
回傳在當前列之後有偏移的列值,若在當前列後的偏移列數少於此,則回傳預設值。 |
nth_value(col, offset[, ignoreNulls]) |
回傳視窗框架的第 1 列偏移數值(從 1 開始計),若視窗框架大小小於偏移列數,則為空值。 |
ntile(n) |
回傳 ntile 群組 ID(從 1 到 n 含)在有序視窗分割中。 |
percent_rank() |
返回相對排名(即 |
rank() |
回傳視窗分割區內列的秩。 |
row_number() |
回傳一個從視窗分割區 1 開始的連續數字。 |
生成函數
| 功能 | Description |
|---|---|
explode(col) |
為給定陣列或映射中的每個元素回傳一列新資料。 |
explode_outer(col) |
為給定陣列或映射中的每個元素回傳一列新資料。 |
inline(col) |
將結構陣列分解成數據表。 |
inline_outer(col) |
將結構陣列分解成數據表。 |
posexplode(col) |
回傳一個新的列給每個元素,該元素在給定的陣列或字典中的位置。 |
posexplode_outer(col) |
回傳一個新的列給每個元素,該元素在給定的陣列或字典中的位置。 |
stack(*cols) |
將col1、...、colk排列成n行。 |
分割轉換函數
| 功能 | Description |
|---|---|
partitioning.years(col) |
一個時間戳和日期的轉換,將資料分割成年份。 |
partitioning.months(col) |
一個時間戳和日期的轉換,將資料分割成月份。 |
partitioning.days(col) |
一個時間戳和日期的轉換,將資料分割成天。 |
partitioning.hours(col) |
將時間戳轉換以按小時劃分資料。 |
partitioning.bucket(numBuckets, col) |
一種對任意型態進行轉換的機制,根據輸入欄位的雜湊值進行分割。 |
H3 地理空間函數(Databricks)
| 功能 | Description |
|---|---|
h3_boundaryasgeojson(col) |
回傳 H3 儲存格的邊界,格式為 GeoJSON 格式 |
h3_boundaryaswkb(col) |
以 WKB 格式回傳 H3 單元的邊界 |
h3_boundaryaswkt(col) |
回傳 WKT 格式的 H3 單元邊界 |
h3_centerasgeojson(col) |
以 GeoJSON 格式回傳 H3 儲存格的中心 |
h3_centeraswkb(col) |
以 WKB 格式回傳 H3 單元的中心 |
h3_centeraswkt(col) |
以WKT格式回傳H3單元的中心 |
h3_compact(col) |
盡可能將輸入的 H3 格元 ID 集合壓縮 |
h3_coverash3(col1,col2) |
回傳一組以長整數表示的單元 ID 陣列,對應於指定解析度的六邊形或五邊形,這些元素以最小範圍涵蓋輸入的線性或面積地理特徵。 |
h3_coverash3string(col1,col2) |
回傳一組以字串表示的格子 ID,對應於指定解析度的六邊形或五邊形,這些字串至少涵蓋輸入的線性或區域地理 |
h3_distance(col1,col2) |
回傳兩個 H3 cell ID 之間的網格距離 |
h3_h3tostring(col) |
將 H3 儲存格 ID 轉換為表示該 ID 的十六進位字串 |
h3_hexring(col1,col2) |
回傳一個包含H3單元格ID的陣列,這些單元格形成一個以原點H3單元格為中心的空心六角形環,且與原點H3單元格的網格距離為k。 |
h3_ischildof(col1,col2) |
如果第一個 H3 cell ID 是第二個 H3 cell ID 的子節點,則會回傳True |
h3_ispentagon(col) |
若輸入 H3 cell ID 代表五邊形,則回傳True |
h3_isvalid(col) |
若輸入表示有效的 H3 單元 ID,則回傳True |
h3_kring(col1,col2) |
回傳距離為 k 的起始單元格 ID 範圍內的 H3 單元格 ID |
h3_kringdistances(col1,col2) |
回傳所有距離原 H3 格點 ID k 內的 H3 cell ID(以長整數或字串表示),並返回它們與原 H3 格點 ID 的距離 |
h3_longlatash3(col1,col2,col3) |
回傳 H3 單元 ID(以 BIINT 形式),對應指定解析度下的經度與緯度 |
h3_longlatash3string(col1,col2,col3) |
回傳對應指定經緯度和解析度的 H3 格子 ID(字串) |
h3_maxchild(col1,col2) |
回傳輸入 H3 單元在指定解析度下具有最大值的子節點 |
h3_minchild(col1,col2) |
回傳輸入 H3 單元在指定解析度下具有最小值的子節點 |
h3_pointash3(col1,col2) |
回傳對應指定解析度下所給點的 H3 單元 ID(BIGINT) |
h3_pointash3string(col1,col2) |
回傳對應指定解析度下該點的 H3 cell ID(字串) |
h3_polyfillash3(col1,col2) |
回傳一組以長整數表示的單元 ID 陣列,對應於輸入區域地理所包含的指定解析度的六角形或五邊形 |
h3_polyfillash3string(col1,col2) |
回傳一個以字串表示的格子 ID 陣列,對應於指定解析度的六角形或五邊形,這些 ID 由輸入的區域地理所包含 |
h3_resolution(col) |
回傳 H3 單元 ID 的解析度 |
h3_stringtoh3(col) |
將字串表示 H3 單元 ID 轉換為其大整數表示 |
h3_tessellateaswkb(col1,col2) |
回傳一個結構陣列,代表在指定解析度下覆蓋地理的晶片 |
h3_tochildren(col1,col2) |
在指定解析度下,回傳特定輸入 H3 單元 ID 的子 H3 單元 ID |
h3_toparent(col1,col2) |
回傳在指定解析度下輸入的 H3 cell ID 的父 H3 cell ID |
h3_try_coverash3(col1,col2) |
回傳一組以長整數表示的單元 ID 陣列,對應於指定解析度的六邊形或五邊形,這些元素以最小範圍涵蓋輸入的線性或面積地理特徵。 |
h3_try_coverash3string(col1,col2) |
回傳一組以字串表示的格子 ID,對應於指定解析度的六邊形或五邊形,這些字串至少涵蓋輸入的線性或區域地理 |
h3_try_distance(col1,col2) |
回傳兩個相同解析度的 H3 格子 ID 之間的格點距離;若距離未定義則回傳 None。 |
h3_try_polyfillash3(col1,col2) |
回傳一組以長整數表示的單元 ID 陣列,對應於輸入區域地理所包含的指定解析度的六角形或五邊形 |
h3_try_polyfillash3string(col1,col2) |
回傳一個以字串表示的格子 ID 陣列,對應於指定解析度的六角形或五邊形,這些 ID 由輸入的區域地理所包含 |
h3_try_tessellateaswkb(col1,col2) |
回傳一個結構體陣列,表示在指定解析度下覆蓋地理的晶片,若幾何無效則為空 |
h3_try_validate(col) |
若輸入值為有效 H3 儲存格則回傳;否則為 None |
h3_uncompact(col1,col2) |
將輸入的 H3 單元 ID 解壓縮至指定解析度 |
h3_validate(col) |
若輸入值為有效 H3 單元則回傳,否則會出錯 |
ST 地理空間函數(Databricks)
| 功能 | Description |
|---|---|
st_addpoint(col1,col2,col3) |
在輸入線串 地理或幾何中第 n 個位置新增一個點 |
st_area(col) |
回傳輸入的地理或幾何的面積 |
st_asbinary(col1,col2) |
回傳輸入的 地理 或 幾何 值,格式為 WKB 格式 |
st_asewkb(col1,col2) |
回傳以 EWKB 格式的輸入 幾何 值 |
st_asewkt(col) |
回傳輸入的 地理 或 幾何 值,以 EWKT 格式呈現 |
st_asgeojson(col) |
回傳輸入的 地理 或 幾何 值,格式為 GeoJSON 格式 |
st_astext(col) |
回傳輸入的 地理 或 幾何 值,為 WKT 格式 |
st_aswkb(col1,col2) |
回傳輸入的 地理 或 幾何 值,格式為 WKB 格式 |
st_aswkt(col) |
回傳輸入的 地理 或 幾何 值,為 WKT 格式 |
st_buffer(col1,col2) |
回傳輸入幾何體的緩衝區,使用指定的半徑 |
st_centroid(col) |
將輸入幾何體的重心回傳為 2D 點幾何體 |
st_concavehull(col1,col2,col3) |
使用指定的長度比,將輸入幾何體的凹包以幾何體形式回傳 |
st_contains(col1,col2) |
若第一個幾何包含第二個幾何,則返回True |
st_convexhull(col) |
將輸入幾何體的凸包以幾何體的形式回傳 |
st_covers(col1,col2) |
若第一種幾何體覆蓋第二層幾何體,則回傳True |
st_difference(col1,col2) |
回傳兩個輸入幾何體中不同的點集,作為 2D 幾何體 |
st_dimension(col) |
傳回輸入幾何圖形的二維投影之拓撲維度 |
st_disjoint(col1,col2) |
若兩個幾何不相交,則返回True |
st_distance(col1,col2) |
回傳兩個輸入幾何體之間的二維笛卡爾距離 |
st_distancesphere(col1,col2) |
回傳兩個點幾何形狀間的球面距離(以公尺計),測量於半徑為 WGS84 橢球體平均半徑的球面上 |
st_distancespheroid(col1,col2) |
回傳 WGS84 橢球體上兩點幾何體間的測地線距離(以公尺為單位) |
st_dwithin(col1,col2,col3) |
若兩個輸入幾何體之間的二維笛卡兒距離小於或等於輸入距離,則返回True |
st_endpoint(col) |
回傳輸入線串的最後一個點,或 None 如果不存在該點 |
st_envelope(col) |
回傳輸入非空幾何的二維笛卡兒軸對齊最小邊界框(包絡線),作為幾何形狀 |
st_envelope_agg(col) |
回傳欄位中所有幾何圖形的包絡,若欄位沒有行,或只包含 None 值,則回傳 None |
st_equals(col1,col2) |
若兩個幾何形狀幾何相等,則返回True |
st_exteriorring(col) |
回傳外環(殼層),以線條形式呈現輸入 的地理 或 幾何 值,代表一個多邊形 |
st_flipcoordinates(col) |
交換輸入幾何體的 X 與 Y 座標 |
st_geogfromgeojson(col) |
解析 GeoJSON 描述並回傳對應的 地理 值 |
st_geogfromtext(col) |
解析 WKT 描述並回傳對應的 地理 值 |
st_geogfromwkb(col) |
解析輸入的 WKB 描述並回傳對應的 地理 值 |
st_geogfromwkt(col) |
解析 WKT 描述並回傳對應的 地理 值 |
st_geohash(col1,col2) |
回傳輸入Geometry的 geohash 值 |
st_geometryn(col1,col2) |
回傳以 1 為基礎的第 n 個輸入多重幾何元素,若不存在則回傳None |
st_geometrytype(col) |
回傳輸入 Geography 或 Geometry 值的型別,作為字串 |
st_geomfromewkb(col) |
解析輸入的 EWKB 描述並回傳對應的 幾何 值 |
st_geomfromgeohash(col) |
回傳對應輸入地理雜湊值的網格框,作為二維多邊形幾何體 |
st_geomfromgeojson(col) |
解析 GeoJSON 描述並回傳對應 的幾何 值 |
st_geomfromtext(col1,col2) |
解析 WKT 描述並回傳相應的 幾何 值 |
st_geomfromwkb(col1,col2) |
解析輸入的 WKB 描述並回傳對應的 幾何 值 |
st_geomfromwkt(col1,col2) |
解析 WKT 描述並回傳相應的 幾何 值 |
st_intersection(col1,col2) |
將兩個輸入幾何體的點集交集回傳為二維幾何體 |
st_intersects(col1,col2) |
若兩個幾何相交,則返回True |
st_isempty(col) |
若輸入的True幾何值不包含任何非空點,則回傳 |
st_isvalid(col) |
若輸入幾何體在 OGC 意義上是有效幾何,則回傳True |
st_length(col) |
輸出輸入的幾何或地理值的長度 |
st_m(col) |
回傳輸入點幾何的 M 座標,或 None 當輸入點幾何為空或沒有 M 座標時 |
st_makeline(col) |
回傳一個線條幾何體,其點為輸入幾何陣列中非空的點,這些幾何體預期為點、線串或多點 |
st_makepolygon(col1,col2) |
從輸入的外部邊界及可選的內邊界陣列(以閉線串表示)構造一個多邊形 |
st_multi(col) |
回傳輸入的地理資料或幾何資料為等效的多重地理空間資料,保留原始 SRID |
st_ndims(col) |
回傳輸入 地理 或 幾何 值的座標維度 |
st_npoints(col) |
回傳輸入 地理 或 幾何 值中非空點數的數量 |
st_numgeometries(col) |
回傳輸入幾何體中的幾何體數量 |
st_perimeter(col) |
回傳輸入地理資料或幾何資料的周長 |
st_point(col1,col2,col3) |
回傳一個二維點 幾何, 包含給定的 x 和 y 座標及 SRID 值 |
st_pointfromgeohash(col) |
回傳對應輸入地理雜湊值的地哈希格網格中心點,作為二維點幾何 |
st_pointn(col1,col2) |
回傳輸入線串中以 1 為基礎的第 n 點,如果不存在,則回傳None。 |
st_removepoint(col1,col2) |
從輸入線串 地理或幾何中移除第 n 點 |
st_reverse(col) |
將輸入的 地理 或 幾何 值中頂點的順序反轉 |
st_rotate(col1,col2) |
將輸入的幾何圖形繞 Z 軸以給定的旋轉角度(以弧度為單位)旋轉 |
st_scale(col1,col2,col3,col4) |
利用給定的縮放因子對輸入幾何形狀的 X、Y 方向,以及可選的 Z 方向進行縮放。 |
st_setpoint(col1,col2,col3) |
設定輸入線串 地理或幾何中的第 n 個點 |
st_setsrid(col1,col2) |
回傳一個新的 幾何 值,其 SRID 為指定的 SRID 值 |
st_simplify(col1,col2) |
利用 Douglas-Peucker 演算法簡化輸入幾何 |
st_srid(col) |
回傳輸入地理空間值的 SRID |
st_startpoint(col) |
回傳輸入線串的第一點;如果不存在,則回傳None |
st_touches(col1,col2) |
如果兩個幾何體彼此接觸,則返回True |
st_transform(col1,col2) |
將輸入幾何體的 X 與 Y 座標轉換為由所提供 SRID 值描述的座標參考系統(CRS) |
st_translate(col1,col2,col3,col4) |
利用提供的偏移量,將輸入幾何形狀在 X、Y 和 Z(可選)方向平移 |
st_union(col1,col2) |
回傳兩個輸入幾何體的點集聯集,並以二維幾何體呈現。 |
st_union_agg(col) |
回傳該欄中所有幾何體的點集合聯集,若欄位中沒有資料列或僅包含 None 值,則回傳 None。 |
st_within(col1,col2) |
如果第一個幾何體位於第二個幾何體內,則返回True |
st_x(col) |
回傳輸入點幾何體的 X 座標,或 None 當輸入點幾何體為空時 |
st_xmax(col) |
回傳輸入幾何的最大 X 座標,或 None 當輸入幾何為空時 |
st_xmin(col) |
回傳輸入幾何體的最小 x 座標,或 None 當輸入幾何體為空時 |
st_y(col) |
回傳輸入點幾何的 Y 座標,或 None 當輸入點幾何為空時 |
st_ymax(col) |
回傳輸入幾何的最大 Y 座標,或 None 當輸入幾何為空時 |
st_ymin(col) |
回傳輸入幾何體的最小 Y 座標,或 None 當輸入幾何體為空時 |
st_z(col) |
回傳輸入點幾何的 Z 座標,或 None 當輸入點幾何為空或沒有 Z 座標時 |
st_zmax(col) |
回傳輸入幾何的最大 Z 座標,或 None 當輸入幾何為空或不包含 Z 座標時 |
st_zmin(col) |
回傳輸入幾何體的最小 Z 座標;若輸入幾何體為空或不包含 Z 座標,則回傳 None。 |
to_geography(col) |
解析輸入的二進位或字串值,並回傳對應的 地理 值 |
to_geometry(col) |
解析輸入的二進位或字串值,並回傳對應的 幾何 值 |
try_to_geography(col) |
解析輸入的二進位或字串值,並回傳對應的 地理 值;若輸入無效,則回傳 None |
try_to_geometry(col) |
解析輸入的二進位或字串值,並回傳對應的 幾何 值,或 None 在輸入無效時返回 |
CSV 函式
| 功能 | Description |
|---|---|
from_csv(col, schema[, options]) |
將包含 CSV 字串的欄位解析成指定結構的一列。 |
schema_of_csv(csv[, options]) |
解析 CSV 字串並以 DDL 格式推斷其結構。 |
to_csv(col[, options]) |
將包含 StructType 的欄位轉換成 CSV 字串。 |
JSON 函式
| 功能 | Description |
|---|---|
from_json(col, schema[, options]) |
將包含 JSON 字串的欄位解析成 MapType(鍵型為 StringType)、StructType 或 ArrayType,並使用指定的 schema。 |
get_json_object(col, path) |
根據指定的 json 路徑從 json 字串中擷取 json 物件,並回傳已解壓縮的 json 物件的 json 字串。 |
json_array_length(col) |
傳回最外層 JSON 陣列中的元素數目。 |
json_object_keys(col) |
會以陣列形式回傳最外層 JSON 物件的所有鍵。 |
json_tuple(col, *fields) |
根據給定的欄位名稱,為 JSON 資料表中的某一欄建立一列新資料。 |
schema_of_json(json[, options]) |
解析 JSON 字串並以 DDL 格式推斷其結構。 |
to_json(col[, options]) |
將包含 StructType、ArrayType 或 MapType 的欄位轉換成 JSON 字串。 |
變體功能
| 功能 | Description |
|---|---|
is_variant_null(v) |
檢查變體值是否為變體空值。 |
parse_json(col) |
將包含 JSON 字串的欄位解析成為 VariantType。 |
schema_of_variant(v) |
以變體的 SQL 格式回傳結構。 |
schema_of_variant_agg(v) |
以變體欄位的 SQL 格式回傳合併後的結構。 |
try_variant_get(v, path, targetType) |
依路徑從 v 中擷取一個子變體,然後將該子變體鑄造為 targetType。 |
variant_get(v, path, targetType) |
依路徑從 v 中擷取一個子變體,然後將該子變體鑄造為 targetType。 |
try_parse_json(col) |
將包含 JSON 字串的欄位解析成為 VariantType。 |
to_variant_object(col) |
將包含巢狀輸入(陣列/映射/結構)的欄位轉換成變體,其中映射和結構會轉換為變體物件,這些物件不像 SQL 結構體那樣有序。 |
XML 函數
| 功能 | Description |
|---|---|
from_xml(col, schema[, options]) |
解析包含 XML 字串的欄位,將其解析為具有指定模式的列。 |
schema_of_xml(xml[, options]) |
解析 XML 字串並以 DDL 格式推斷其結構。 |
to_xml(col[, options]) |
將包含 StructType 的欄位轉換成 XML 字串。 |
xpath(xml, path) |
回傳一個與 XPath 表達式相符的 XML 節點內的字串陣列。 |
xpath_boolean(xml, path) |
如果 XPath 運算式值值為真,或找到匹配節點,則回傳 true。 |
xpath_double(xml, path) |
回傳雙倍值,若未找到匹配則為零;若找到匹配但值非數字,則回傳 NaN。 |
xpath_float(xml, path) |
回傳浮點值,若未找到匹配則為零,若找到匹配但值非數字化則為 NaN。 |
xpath_int(xml, path) |
回傳整數值,若未找到匹配,或找到匹配但值非數值則回傳為零。 |
xpath_long(xml, path) |
如果找到的匹配不是數字,或未找到匹配,則回傳值為零;否則,回傳一個長整數值。 |
xpath_number(xml, path) |
回傳雙倍值,若未找到匹配則為零;若找到匹配但值非數字,則回傳 NaN。 |
xpath_short(xml, path) |
若未找到匹配,或找到匹配但該值為非數字,則回傳零;否則,回傳一個短整數值。 |
xpath_string(xml, path) |
回傳第一個與 XPath 表達式相符的 XML 節點的文字內容。 |
URL 函式
| 功能 | Description |
|---|---|
parse_url(url, partToExtract[, key]) |
從網址中擷取指定的部分。 |
try_parse_url(url, partToExtract[, key]) |
嘗試執行 parse_url 操作,但若無法解析,則回傳 NULL 值,而非拋出錯誤。 |
url_decode(str) |
將 URL 編碼的字串 application/x-www-form-urlencoded 解碼為原始格式。 |
url_encode(str) |
將字串編碼成 URL 編碼的字串,格式為 'application/x-www-form-urlencoded'。 |
try_url_decode(str) |
嘗試執行該 url_decode 操作,但若無法執行解碼,請回傳 NULL 值,而非產生錯誤。 |
雜項函式
| 功能 | Description |
|---|---|
aes_decrypt(input, key[, mode, padding, aad]) |
在有填充模式下,使用 AES 回傳解密後的輸入值。 |
aes_encrypt(input, key[, mode, padding, iv, aad]) |
以指定模式和填充方式使用 AES 傳回加密的輸入值。 |
assert_true(col[, errMsg]) |
若輸入欄位為真,則回傳 null;否則會拋出帶有錯誤訊息的例外。 |
bitmap_bit_position(col) |
回傳給定輸入欄位的位元位置。 |
bitmap_bucket_number(col) |
回傳給定輸入欄位的桶號。 |
bitmap_count(col) |
回傳輸入位圖中的設定位元數。 |
current_catalog() |
傳回當前目錄。 |
current_database() |
回傳目前的資料庫。 |
current_schema() |
傳回目前的架構。 |
current_user() |
回傳目前的使用者。 |
hll_sketch_estimate(col) |
返回根據 Datasketches HllSketch 的二進位表示估計的唯一值數量。 |
hll_union(col1, col2[, allowDifferentLgConfigK]) |
合併兩個 Datasketches HllSketch 物件的二進位表示,使用 Datasketches Union 物件。 |
input_file_block_length() |
回傳被讀取區塊的長度,若無法讀取則返回 -1。 |
input_file_block_start() |
回傳被讀取區塊的起始偏移量,若無法使用則回傳 -1。 |
input_file_name() |
為目前 Spark 任務的檔名建立字串欄位。 |
java_method(*cols) |
使用反射調用方法。 |
monotonically_increasing_id() |
一個產生單調遞增的 64 位元整數的欄位。 |
raise_error(errMsg) |
會拋出一個包含錯誤訊息的例外。 |
reflect(*cols) |
使用反射調用方法。 |
session_user() |
回傳目前執行上下文的使用者名稱。 |
spark_partition_id() |
分割區 ID 欄位。 |
try_aes_decrypt(input, key[, mode, padding, aad]) |
嘗試執行該 aes_decrypt 操作,但若無法執行解密,請回傳 NULL 值,而非產生錯誤。 |
try_reflect(*cols) |
嘗試執行操作 reflect,但如果 invoke 方法拋出例外,則回傳 NULL 值,而不是引發錯誤。 |
typeof(col) |
回傳輸入資料型態的 DDL 格式型別字串。 |
user() |
回傳目前的使用者。 |
version() |
返回 Spark 版本。 |
UDF、UDTF、UDT 功能
| 功能 | Description |
|---|---|
call_udf(udfName, *cols) |
呼叫一個使用者自訂的函式。 |
pandas_udf([f, returnType, functionType]) |
建立 pandas 使用者定義函式(又稱 |
udf([f, returnType, useArrow]) |
建立使用者定義函式(UDF)。 |
udtf([cls, returnType, useArrow]) |
建立使用者自訂的表格函式(UDTF)。 |
unwrap_udt(col) |
將 UDT 資料型別欄位展開為其底層型別。 |
表格值函數
| 功能 | Description |
|---|---|
TableValuedFunction.collations() |
取得所有 Spark SQL 字串排序規則。 |
TableValuedFunction.explode(collection) |
回傳一個 DataFrame,其中每個給定陣列或映射內的元素都有一個新行。 |
TableValuedFunction.explode_outer(collection) |
回傳一個 DataFrame,其中包含在指定陣列或映射表中每個元素對應位置的新列。 |
TableValuedFunction.inline(input) |
將結構陣列分解成數據表。 |
TableValuedFunction.inline_outer(input) |
將結構陣列分解成數據表。 |
TableValuedFunction.json_tuple(input, *fields) |
根據給定的欄位名稱,為 JSON 資料表中的某一欄建立一列新資料。 |
TableValuedFunction.posexplode(collection) |
回傳一個 DataFrame,其中包含在指定陣列或映射表中每個元素對應位置的新列。 |
TableValuedFunction.posexplode_outer(collection) |
回傳一個 DataFrame,其中包含在指定陣列或映射表中每個元素對應位置的新列。 |
TableValuedFunction.range(start[, end, ...]) |
建立一個 DataFrame,包含單一名為 id 的 pyspark.sql.types.LongType 欄位,包含從開始到結束(排他)範圍內的元素,並以步數值步驟為單位。 |
TableValuedFunction.sql_keywords() |
取得 Spark SQL 關鍵字。 |
TableValuedFunction.stack(n, *fields) |
將col1、...、colk排列成n行。 |
TableValuedFunction.variant_explode(input) |
將變體物件/陣列拆分成多列,包含其欄位/元素。 |
TableValuedFunction.variant_explode_outer(input) |
將變體物件/陣列拆分成多列,包含其欄位/元素。 |