Spark 使用者自定義函式(UDF)使用

2022-09-18 23:30:14 字數 1277 閱讀 1114

spark sql支援使用者自定義函式(udf),我們可以方便的利用udf函式來完成各種資料處理操作。

下面例子展示了用udf功能對乙個資料集進行轉換操作(將輸入df的某列進行處理,將處理結果作為新列附加在新生成的df上):

var in = spark.

createdataset

(list((

1,2)

,(3,

2),(

3,4)

,(3,

4),(

1,2)

)).todf

("a"

,"b"

)in.show

/* +---+---+

| a| b|

+---+---+

| 1| 2|

| 3| 2|

| 3| 4|

| 3| 4|

| 1| 2|

+---+---+ */

val df = in.

groupby

("a").

agg(

collect_list

("b").

as("b")

)df.show

/* +---+---------+

| a| b|

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

| 1| [2, 2]|

| 3|[2, 4, 4]|

+---+---------+ */

def f

(arr: seq[int])=

//自定義乙個功能函式

val my_udf =

udf(f _)

//將自定義函式註冊為udf

val out = df.

withcolumn

("**g(b)"

,my_udf

($"b"))

//使用udf進行轉換操作

out.show

/* +---+---------+------------------+

| a| b| **g(b)|

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

| 1| [2, 2]| 2.0|

| 3|[2, 4, 4]|3.3333333333333335|

+---+---------+------------------+ */

hive自定義函式UDF

hive自定義函式 udf 可以幫助使用者輕鬆實現在hql語句中展現自定義查詢結果。這裡以乙個簡單的連線函式來實現使用者自定義函式,假設表結構如下 表中只有兩個簡單的字段,id和name。這裡實現乙個將id和name用 連線的函式,最後輸出結果。第一步 書寫stringjoin類,繼承udf,實現名...

hive自定義函式 UDF

幾個命令 檢視所有函式 hive show functions 檢視函式的使用方法 hive desc function 函式名 兩數和 addudf 自定義hive函式 description name myadd value myadd int a int b return a b extend...

msql 自定義函式(UDF)

建立udf create aggregate function function name parameter name type,parameter name type,returns runtime body 簡單來說就是 create function 函式名稱 引數列表 returns 返回...