spark sql內建函式

2021-08-07 23:51:24 字數 1618 閱讀 4732

在spark 1.5.x版本,增加了一系列內建函式到dataframe api中,並且實現了code-generation的優化。與普通的函式不同,dataframe的函式並不會執行後立即返回乙個結果值,而是返回乙個column物件,用於在並行作業中進行求值。column可以用在dataframe的操作之中,比如select,filter,groupby等。函式的輸入值,也可以是column。

聚合函式:

集合函式:

array_contains, explode, size, sort_array

日期時間轉換

unix_timestamp, from_unixtime, to_date, quarter, day, dayofyear, weekofyear, from_utc_timestamp, to_utc_timestamp

從日期時間中提取字段

year, month, dayofmonth, hour, minute, second

日期/時間計算

datediff, date_add, date_sub, add_months, last_day, next_day, months_between

獲取當前時間等

current_date, current_timestamp, trunc, date_format

數學函式:

abs, acros, asin, atan, atan2, bin, cbrt, ceil, conv, cos, sosh, exp, expm1, factorial, floor, hex, hypot, log, log10, log1p, log2, pmod, pow, rint, round, shiftleft, shiftright, shiftrightunsigned, signum, sin, sinh, sqrt, tan, tanh, todegrees, toradians, unhex

混合函式:

array, bitwisenot, calludf, coalesce, crc32, greatest, if, inputfilename, isnan, isnotnull, isnull, least, lit, md5, monotonicallyincreasingid, nanvl, negate, not, rand, randn, sha, sha1, sparkpartitionid, struct, when

字串函式:

ascii, base64, concat, concat_ws, decode, encode, format_number, format_string, get_json_object, initcap, instr, length, levenshtein, locate, lower, lpad, ltrim, printf, regexp_extract, regexp_replace, repeat, reverse, rpad, rtrim, soundex, space, split, substring, substring_index, translate, trim, unb

視窗函式:

cumedist, denserank, lag, lead, ntile, percentrank, rank, rownumber

ase64, upper

SparkSQL內建函式

統計每日uv和銷售額 這裡使用內建函式 countdistinct 每天都有很多使用者來訪問,但是每個使用者可能每天會訪問很多次 所以uv,指的是,對使用者進行去重以後的訪問次數 去重統計總數 首先,對dataframe呼叫groupby 方法,對某一列進行分組 然後呼叫agg 方法,第乙個引數,必...

Spark SQL中開窗函式詳解

row number 開窗函式 其實就是給每個分組的資料,按照其排序的順序,打上乙個分組內的行號,相當於grouptopn,在實際應用中非常廣泛。deptname name salary dept 1 michael 3000 dept 2 andy 5000 dept 1 alex 4500 de...

mysql 檢視內建函式 mysql內建函式

一 字串函式 1.concat s1,s2.sn 把傳入的引數連線成乙個字串 2.insert str,x,y,str 從str的x位置開始,替換y長度的字串為str,select insert abcdefg 2,3,hello 3.lower str upper str 將字串轉換為大寫,小寫 ...