【大数据】UDF、UDAF、UDTF是什么,之间的关系是什么?

UDF (User-Defined Functions)

UDF 是一种用户自定义的标量函数,它接收一个或多个输入值,并返回一个单一的结果值。

例子

URL转义的操作,将给定的字符串通过用户在Java或其他语言实现的自定义函数,输入字符串,将其转义后的结果输出。

table_url

url
https://hello.world?我是个中文参数
SELECT * FROM escape_url(url) AS escaped_url FROM table_url

result

escaped_url
https://hello.world?%E6%88%91%E6%98%AF%E4%B8%AA%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0

UDAF (User-Defined Aggregate Functions)

UDAF 是一种用户自定义的聚合函数,它可以接收多行数据输入,并返回一个单一的聚合结果。

例子

SUM操作,输入多行,将该列的多行数据求和结果返回

table_score

score
1
2
3
SELECT * FROM sum(frutis) AS sum_score FROM table_score

result

sum_score
6

UDTF (User-Defined Table-Generating Functions)

UDTF 是一种用户自定义的表生成函数,它接收一行输入数据,并可能生成多行输出数据。列转行操作,将某一列嵌套很深的函数扁平化。

例子

比如有一列是个数组,通过该函数,将该列内容摊平。

table_store

fruits
apple,banana,orange
SELECT * FROM udtf_fun(frutis) AS fruit FROM table_store

result

fruit
apple
banana
orange
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值