Spark SQL函式

Adobe Experience Platform Query Service提供數種內建的Spark SQL函式,以擴充SQL功能。 本檔案列出Query Service支援的Spark SQL函式。

如需函式的詳細資訊,包括其語法、使用方式和範例,請參閱 Spark SQL函式檔案.

注意

並非外部檔案中的所有函式都受支援。

數學和統計運運算元和函式

運運算元/函式 說明
% 傳回兩個數字的餘數
* 將兩個數字相乘
+ 將兩個數字相加
- 減去兩個數字
/ 將兩個數字相除
abs 傳回輸入的絕對值
acos 傳回反餘弦值
approx_count_distinct 傳回HyperLogLog的估計基數++
approx_percentile 傳回給定百分比的近似百分位數值
asin 傳回反正弦值
atan 傳回反正切值
atan2 傳回x軸正平面與座標所指定點之間的角度
avg 傳回平均值
cbrt 傳回立方根
ceilceiling 傳回不大於輸入值的最小整數
conv 從一個基底轉換到另一個基底
corr 傳回數字之間的皮爾遜係數
cos 傳回餘弦值
cosh 傳回雙曲餘弦值
cot 傳回餘切值
dense_rank 傳回值在值群組中的排名
e 傳回Euler數字
exp 將e傳回值的冪
expm1 傳回e為值減去1的冪
factorial 傳回值的階乘
floor 傳回不小於值的最大整數
greatest 傳回所有引數的最大值
hypot 傳回給定兩個值的次冪
kurtosis 傳回群組的峭度值
least 傳回所有引數的最小值
ln 傳回值的自然對數
log 傳回值的對數
log10 傳回值的對數(以10為單位)
log1p 傳回值加1的對數
log2 傳回以2為底的對數值
max 傳回運算式的最大值
mean 傳回從值計算出的平均值
min 傳回運算式的最小值
monotonically_increasing_id 傳回單調遞增的ID
negative 傳回否定值
percent_rank 傳回值的百分比排名
percentile 傳回指定百分比的確切百分位數
percentile_approx 傳回給定百分比的近似百分位數
pi 傳回pi
pmod 傳回兩個值之間的正模數
positive 傳回正值
pow, power 將第一個值傳回至第二個值的冪
radians 將值轉換為弧度
rand 傳回0到1之間的隨機數字
randn 傳回隨機值
rint 傳回最接近的雙精度值
round 傳回最接近的舍入值
sign, signum 傳回數字的符號
sin 傳回值的正弦
sinh 傳回值的雙曲正弦
sqrt 傳回值的平方根
stddev 傳回值的標準差
sttdev_pop 傳回值的母體標準差
stddev_samp 傳回值的範例標準差
sum 傳回值的總和
tan 傳回值的正切
tanh 傳回值的雙曲正切
var_pop 傳回計算的母體變異數
var_samp, variance 傳回計算的樣本變異數

邏輯運運算元和函式

運運算元/函式 說明
!not 邏輯非
< 少於
<= Less than or equal to
= Equal to
> Greater than
>= 大於或等於
^ 位元排除或
| 位元或
~ 位元非
arrays_overlap 傳回常見元素
assert_true 判斷運算式是否為true
if 如果運算式的計算結果為true,則傳回第二個運算式。 否則,傳回第三個運算式。
ifnull 如果運算式為null,則會傳回第二個運算式。 否則,會傳回第一個運算式。
in 如果第一個運算式位於任何後續運算式中,則傳回true。
isnan 如果值不是數字,則傳回true
isnotnull 如果值不是null,則傳回true
isnull 如果值為null,則傳回true
nanvl 若不是數字,則傳回第一個運算式,否則傳回第二個運算式
or 邏輯或
when 何時可用來建立分支條件以進行比較
xpath_boolean 如果XPath運算式的評估結果為true或找到相符的節點,則傳回true

日期/時間函式

函數 說明
add_months 按日期新增月份
date_add 新增日期至日期
date_format 修改日期格式
date_sub 從日期減去天數
date_trunc 傳回截斷為指定單位的日期
datediff 傳回日期之間的差異(以天為單位)
day, dayofmonth 傳回該月的第幾天
dayofweek 傳回星期幾(1-7)
dayofyear 傳回一年中的第幾天
from_unixtime 以Unix時間傳回日期
from_utc_timestamp 以UTC時間傳回日期
hour 傳回輸入的小時
last_day 傳回日期所屬月份的最後一天
minute 傳回輸入的分鐘數
month 傳回輸入的月份
months_between 月數介於
next_day 傳回比輸入晚的第一天
quarter 傳回輸入的季度
second 傳回字串的秒數
to_date 將字串轉換為日期。 注意: 字串 必須 採用格式 yyyy-mm-ddTHH24:MM:SS.
to_timestamp 將字串轉換為時間戳記。 注意: 字串 必須 採用格式 yyyy-mm-ddTHH24:MM:SS.
to_unix_timestamp 將字串轉換為Unix時間戳記
to_utc_timestamp 將字串轉換為UTC時間戳記
trunc 截斷日期
unix_timestamp 傳回Unix時間戳記
weekday 星期(0-6)
weekofyear 傳回指定日期在一年中的第幾週
year 傳回字串的年份

陣列

函數 說明
array 使用指定的元素建立陣列
array_contains 檢查陣列是否包含值
array_distinct 從陣列中移除重複值
array_except 傳回第一個陣列中的元素陣列,但不傳回第二個陣列
array_intersect 傳回兩個陣列的交集
array_join 將兩個陣列連線在一起
array_max 傳回陣列的最大值
array_min 傳回陣列的最小值
array_position 傳回元素以1為底的位置
array_remove 移除等於元素的所有元素
array_repeat 建立包含已計算次數的值的陣列
array_sort 排序陣列
array_union 將陣列聯結在一起,沒有任何重複專案
arrays_zip 結合指定陣列的值與指定索引處的原始集合值
cardinality 傳回陣列的大小
element_at 傳回位置上的元素
explode 將陣列元素分隔成多列,不包括null
explode_outer 將陣列元素分隔成多列,包括null
find_in_set 傳回陣列以1為基底的位置
flatten 平面化陣列陣列
inline 將結構陣列分隔到表格中,不包括null
inline_outer 將結構陣列分隔到表格中,包括null
posexplode 將陣列元素分隔成含有位置的多個列,不包括null
reverse 反轉陣列元素
shuffle 傳回陣列的隨機排列
slice 將陣列設為子集
sort_array 依順序排序陣列
zip_with 在套用函式之前,將兩個陣列合併為單一陣列

資料型別轉換函式

函數 說明
bigint 將資料型別變更為bigint
binary 將資料型別變更為二進位
boolean 將資料型別變更為布林值
type 將資料型別變更為指定的型別
date 將資料型別變更為日期
decimal 將資料型別變更為小數
double 將資料型別變更為兩次
float 將資料型別變更為浮點數
int 將資料型別變更為int
smallint 將資料型別變更為smallint
str_to_map 從字串建立對應
string 將資料型別變更為字串
struct 建立結構
tinyint 將資料型別變更為tinyint

轉換和格式化函式

函數 說明
ascii 傳回數值(ASCII)值
base64 將引數變更為base64字串
bin 將引數變更為二進位值
bit_length 傳回位元長度
char, chr 傳回ASCII字元
char_length, character_length 傳回字串長度
crc32 傳回循環冗餘檢查值
degrees 將弧度轉換為度
format_number 變更號碼的格式
from_json, get_json_object 從JSON取得資料
hash 傳回雜湊值
hex 將引數轉換為十六進位值
initcap 將字串變更為標題大小寫
lcase, lower 將字串變更為全部小寫
lpad 貼上字串的左側
map 建立地圖
map_from_arrays 從陣列建立對應
map_from_entries 從結構陣列建立對應
md5 傳回md5值
rpad 貼上字串的右側
rtrim 移除結尾空格
sha, sha1 傳回SHA1值
sha2 傳回SHA2值
soundex 傳回soundex程式碼
stack 將值分隔成列
substr, substring 傳回子字串
to_json 傳回JSON字串
translate 取代字串中的值
trim 移除前置字元和結尾字元
ucase, upper 將字串變更為全部大寫
unbase64 將base64字串轉換為二進位
unhex 將十六進位轉換為二進位
uuid 傳回UUID

資料評估

函數 說明
coalesce 傳回第一個非null引數
collect_list 傳回非唯一元素清單
collect_set 傳回一組不重複元素
concat 串連
concat_ws 使用分隔符號串連
count 傳回列的總計數
decode 使用字元集解碼
elt 傳回 n輸入
encode 使用字元集編碼
first, first_value 傳回第一個值
grouping 指示欄是否分組
grouping_id 傳回群組層級
instr 傳回以1為基礎的字元出現索引
json_tuple 從JSON輸入傳回Tuple
lag, lead 傳回位移前的值
last, last_value 傳回最後一個值
left 傳回第一個 n 個字元
length 傳回字串的長度
levenshtein 傳回字串之間的Levenshtein距離
locate, position 傳回子字串第一次出現的位置
map_concat 串連地圖
map_keys 傳回對應的索引鍵
map_values 傳回對應的值
ntile 將資料列分割成分割區
nullif 如果為true,則傳回null
nvl 如果為null,則傳回值
nvl2 如果不為空,則傳回值
parse_url 擷取部分URL
rank 計算值的排名
regexp_extract 擷取和規則運算式相符的內容
regex_replace 取代符合regex的內容
repeat 傳回重複的字串
replace 取代字串的所有例項
rollup 建立多維度統計
row_number 指派唯一的列號
schema_of_json 傳回JSON的結構描述
sentences 將字串分割為字元陣列
sequence 產生元素陣列
shiftleft 帶正負號的位元左移
shiftright 帶正負號位元右移
shiftrightunsigned 無正負號位元右移
size 傳回陣列的大小
space 傳回字串,其中 n 空間
split 分割字串
substring_index 傳回子字串的索引
window 視窗
xpath 剖析XML節點
xpath_double, xpath_number 剖析XML節點以取得雙精度浮點數
xpath_float 剖析浮點數的XML節點
xpath_int 剖析整數的XML節點
xpath_long 長時間剖析XML節點
xpath_short 剖析短整數的XML節點
xpath_string 剖析字串的XML節點

目前資訊

函數 說明
current_database 傳回目前的資料庫
current_date 傳回目前日期
current_timestamp, now 傳回目前的時間戳記

高階函式

函數 說明
transform 轉換陣列中的元素
exists 檢查元素是否存在
filter 篩選輸入陣列
aggregate 將二進位運運算元套用至所有元素

本頁內容