SparkSQL數學函式

  • 文檔創建者:Roxy
  • 編輯次數:3
  • 最近更新:Nikozhan 于 2026-03-04
  • 1. 概述

    本文介紹 SparkSQL 中的數學函式文法。

    2. ROUND-四捨五入取整

    round(DOUBLE a):傳回對 a 四捨五入的 BIGINT 值,取整。 

    round(DOUBLE a, INT d):傳回 DOUBLE 型 d 的保留 n 位小數的 DOUBLW 型的近似值。 

    範例 1:select round(3.1415926) 

    範例 2:select round(3.1415926,2)

    推薦使用 FineDataLink 新增計算列 中的 ROUND 函式

    3. BROUND

    bround(DOUBLE a):銀行家舍入法(1~4:舍,6~9:進,5->前位數是偶:舍,5->前位數是 奇:進)。

    bround(DOUBLE a, INT d):銀行家舍入法,保留 d 位小數

    範例1:select bround(4.5)  結果為:4

    範例2:select bround(3.145,2)   結果為:3.14

    4. FLOOR-向下取整

    floor(DOUBLE a):向下取整,最數軸上最接近要求的值的左邊的值。 

    範例:select floor(3.14) 

    推薦使用 FineDataLink 新增計算列 中的 FLOOR 函式

    5. CEIL-向上取整

    ceil(DOUBLE a):求其不小於給定實數的最小整數。 

    ceiling(DOUBLE a):求其不小於給定實數的最小整數.

    範例 1:select ceil(-4.1)

    範例 2:select ceiling(-4.1)

    推薦使用 FineDataLink 新增計算列 中的 CEILING 函式

    6. RAND-傳回0-1 之間的隨機數

    rand():傳回一個 0 到 1 範圍內的隨機數。 

    rand(INT seed):傳回一個 0 到 1 範圍內的隨機數。如果指定種子 seed,則會等到一個穩定 的隨機數序列。 

    範例 1:select rand(),rand() 

    範例 2:select rand(8),rand(8)

    推薦使用 FineDataLink 新增計算列 中的 RAND 函式

    7. EXP-e的n次冪

    exp(DOUBLE a), exp(DECIMAL a):傳回 e 的 a 冪次方, a 可為小數。

    範例:select exp(0),exp(1.11)

    推薦使用 FineDataLink 新增計算列 中的 EXP 函式

    8. ln-以e為底的對數

    ln(DOUBLE a), ln(DECIMAL a):以自然常數 e 為底 d 的對數,a 可為小數。 

    範例:select ln(2),ln(2.1)

    推薦使用 FineDataLink 新增計算列 中的 LN 函式

    9. LOG10-以10為底的對數

    log10(DOUBLE a) 或者  log10(DECIMAL a):以 10 為底 d 的對數,a 可為小數。 

    範例:在資料轉換中使用 SparkSQL ,輸入語句:select log10(10),如下圖所示:

    在資料轉換中使用 SparkSQL ,輸入語句:selectlog10(10.11),如下圖所示:

    10. LOG2-以2為底的對數

    log2(DOUBLE a)或者 log2(DECIMAL a):以 2 為底數 d 的對數,a 可為小數。 

    範例:select log2(2),結果如下圖所示:

    11. LOG-任意底數對應的對數值

    log(DOUBLE base, DOUBLE a),log(DECIMAL base, DECIMAL a):以 base 為底的 a 對數。 

    範例:select col1,COL2,log(col1,COL2) from TV 

    推薦使用 FineDataLink 新增計算欄 中的 LOG 函式

    12. POW-乘冪

    pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p):計算 a 的 p 次冪。 

    範例:select col1,COL2,pow(col1,COL2) from TV

    推薦使用 FineDataLink 新增計算欄 中的 POWER 函式

    13. SQRT-平方根

    sqrt(DOUBLE a), sqrt(DECIMAL a):計算 a 的平方根。 

    範例:select col1,COL2,sqrt(col1),sqrt(col2) from TV 

    推薦使用 FineDataLink 新增計算欄 中的 SQRT 函式

    14. ABS-絕對值

    abs(DOUBLE a),abs(DECIMAL a):計算 a 的絕對值。 

    範例:select abs(-3.1),abs(0)

    推薦使用 FineDataLink 新增計算欄 中的 ABS 函式

    15. PMOD-取餘

    pmod(INT a, INT b), pmod(DOUBLE a, DOUBLE b):a 除以 b 取餘。

    範例:select pmod(2,3),pmod(-4,2) 

    推薦使用 FineDataLink 新增計算欄 中的 MOD 函式

    16. 三角函式

    17. 數學常數

    e():數學常數 e

    pi():數學常數Π。 

    範例:select e(),pi()結果如下圖所示:

    18. NEGATIVE -相反數

    negative(INT a) 或者 negative(DOUBLE a):傳回 a 的相反數。 

    範例:select negative(1)結果如下圖所示:

    19. FACTORIAL-階乘

    factorial(INT a):求 a 的階乘。

    範例:select factorial(5) ,結果如下圖所示:

    20. CBRT-立方根

    cbrt(DOUBLE a):求 a 的立方根。 

    範例 :select cbrt(512)結果如下圖所示:

    21. 求最值

    greatest(T v1, T v2, ...):求最大值。

    least(T v1, T v2, ...):求最小值。 

    範例 1:select greatest(col1,col2) from TV 

    範例 2:select least(col1,col2) from TV

    推薦使用 FineDataLink 新增計算欄 中的 MAX 最大值MIN 最小值

    附件列表


    主題: 資料開發-定時任務
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙