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 返回第一個非空參數
collect_list 傳回非唯一元素清單
collect_set 傳回一組唯一元素
concat 串連
concat_ws 與分隔符的串連
count 傳回列的總計數
decode 使用字元集進行解碼
elt 傳回 n輸入
encode 使用字元集進行編碼
first, first_value 傳回第一個值
grouping 指示列是否被分組
grouping_id 返回分組級別
instr 返回基於1的字元出現索引
json_tuple 從JSON輸入傳回元組
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 若非null,則傳回值
parse_url 擷取URL的一部分
rank 計算值的排名
regexp_extract 擷取符合規則運算式的項目
regex_replace 取代符合規則運算式的項目
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 將二進位運算子套用至所有元素

本頁內容