SQLContext自定義函式註冊

2022-04-07 16:09:57 字數 1236 閱讀 1304

員工表emp,只有name和age兩個字段。現在假設員工退休的法定年齡均為60歲,需要計算每個員工剩餘工作年限。val df = sc.parallelize(seq(("張三", 25), ("李四", 30),("趙六", 27))).todf("name", "age")

df.registertemptable("emp")+----+---+

|name|age|

+----+---+

| 張三| 25|

| 李四| 30|

| 趙六| 27|

+----+---+1.1 外部定義函式

定義函式

def remainworkyears(age: int) : int = 註冊函式

sqlcontext.udf.register("remainworkyears", remainworkyears _)執行函式

sqlcontext.sql("select e.*, remainworkyears(e.age) as remainedworkyear from emp e").show

+----+---+----------------+

|name|age|remainedworkyear|

+----+---+----------------+

| 張三| 25| 35|

| 李四| 30| 30|

| 趙六| 27| 33|

+----+---+----------------+1.2 匿名函式

註冊匿名函式

sqlcontext.udf.register("remainworkyears_anoymous", (age: int) => )執行函式

sqlcontext.sql("select e.*, remainworkyears_anoymous(e.age) as remainedworkyear from emp e").show

+----+---+----------------+

|name|age|remainedworkyear|

+----+---+----------------+

| 張三| 25| 35|

| 李四| 30| 30|

| 趙六| 27| 33|

+----+---+----------------+

自定義函式 Excel之自定義函式

在excel中,當系統函式不能滿足我們的需求時候,我們可以使用vba自定義函式,如抓取網頁資料,翻譯詞彙,手機號歸屬地查詢等。下面將介紹2個自定義函式,idymd函式 身份證年月日性別 通過身份證號,返回性別,出生年月日。語法 idymd id 引數 id,身份證號,預設身份證長度18位。vba 如...

自定義函式

使用者自定義函式是sqlserver的資料庫物件,他不能應用於一系列改變資料庫狀態的操作。但它可以像系統函式那樣在查詢中或儲存過程中等中的程式段中使用。也可以像儲存過程一樣通過execute命令來執行,使用者自定義函式中儲存了transact sql可以返回一定的值。在sqlserver中根據函式返...

自定義函式

自定義函式有標量值函式和錶值函式。標量值函式 如果返回結果指定一種資料型別,則函式為標量值函式。錶值函式 如果返回結果指定table則函式為表值函式。基本語法示例 標量值函式 create function funadd a int return int asbegin declare b int ...