Spark SQL函式

您可以使用數個內建的Spark SQL函式,透過Adobe Experience Platform查詢服務來擴充SQL功能。 本檔案列出Query Service支援的Spark SQL函式。

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

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

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

運運算元/函式
說明
%
傳回兩個數字的餘數
*
將兩個數字相乘
+
將兩個數字相加
-
減去兩個數字
/
將兩個數字相除
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
傳回正值
powpower
將第一個值傳回至第二個值的乘冪
radians
將值轉換為弧度
rand
傳回從0到1的隨機數字
randn
傳回隨機值
rint
傳回最接近的雙精度數值
round
傳回最接近的舍入值
signsignum
傳回數字的符號
sin
傳回值的正弦
sinh
傳回值的雙曲正弦
sqrt
傳回值的平方根
stddev
傳回值的標準差
sttdev_pop
傳回值的母體標準差
stddev_samp
傳回值的範例標準差
sum
傳回值的總和
tan
傳回值的正切
tanh
傳回值的雙曲正切
var_pop
傳回計算的母體變異數
var_sampvariance
傳回計算的樣本變異數

邏輯運運算元和函式 logical-operators

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

日期/時間函式 datetime-functions

函數
說明
add_months
按日期新增月份
date_add
按日期新增天數
date_format
修改日期格式
date_sub
從日期減去天數
date_trunc
傳回截斷為指定單位的日期
datediff
傳回日期之間的天數差
daydayofmonth
傳回該月某日
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
傳回字串的年份

陣列 arrays

函數
說明
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
在套用函式之前,將兩個陣列合併為單一陣列

資料型別轉換函式 datatype-casting

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

轉換和格式化函式 conversion

函數
說明
ascii
傳回數值(ASCII)值
base64
將引數變更為base64字串
bin
將引數變更為二進位值
bit_length
傳回位元長度
charchr
傳回ASCII字元
char_lengthcharacter_length
傳回字串長度
crc32
傳回循環冗餘檢查值
degrees
將弧度轉換為度
format_number
變更號碼的格式
from_jsonget_json_object
從JSON取得資料
hash
傳回雜湊值
hex
將引數轉換為十六進位值
initcap
將字串變更為字首大寫
lcaselower
將字串變更為全部小寫
lpad
貼上字串的左側
map
建立地圖
map_from_arrays
從陣列建立地圖
map_from_entries
從結構陣列建立地圖
md5
傳回md5值
rpad
貼上字串的右側
rtrim
移除尾端空格
shasha1
傳回SHA1值
sha2
傳回SHA2值
soundex
傳回soundex程式碼
stack
將值分隔為列
substrsubstring
傳回子字串
to_json
傳回JSON字串
translate
取代字串中的值
trim
移除開頭和結尾字元
ucaseupper
將字串變更為全部大寫
unbase64
將base64字串轉換為二進位
unhex
將十六進位轉換為二進位
uuid
傳回UUID

資料評估 data-evaluation

函數
說明
coalesce
傳回第一個非null引數
collect_list
傳回非唯一元素清單
collect_set
傳回一組不重複元素
concat
串連
concat_ws
與分隔符號串連
count
傳回列的總數
decode
使用字元集解碼
elt
傳回 n輸入
encode
使用字元集編碼
firstfirst_value
傳回第一個值
grouping
顯示是否要將欄分組
grouping_id
傳回群組層級
instr
傳回以1為基礎的字元出現索引
json_tuple
從JSON輸入傳回Tuple
laglead
傳回位移前的值
lastlast_value
傳回最後一個值
left
傳回第一個 n 個字元
length
傳回字串的長度
levenshtein
傳回字串之間的列文氏距離
locateposition
傳回子字串第一次出現的位置
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_doublexpath_number
剖析XML節點以取得雙精度浮點數
xpath_float
剖析浮點數的XML節點
xpath_int
剖析整數的XML節點
xpath_long
長時間剖析XML節點
xpath_short
剖析短整數的XML節點
xpath_string
剖析字串的XML節點

目前資訊 current-information

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

高階函式 higher-order

函數
說明
transform
轉換陣列中的元素
exists
檢查元素是否存在
filter
篩選輸入陣列
aggregate
將二進位運運算元套用至所有元素
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb