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 返回...