在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 將字串轉換為大寫,小寫 ...