spark SQL 自定义函数:

自定义函数:

第一种:  U D F  (用户自定义函数)函数

特点:  一对一的关系,输入一个值以后输出一个值  (一进一出) 大部分的内置函数都是U D F函数

比如:substr()

第二种:U D A F  用户自定义聚合函数

特点:多进一出

比如SUM()  count()  avg()....

第三种:U D T F  用户自定义表生成函数

特点:一进多出(给一个数据,返回多行多列的数据)

比如:explode()爆炸函数

不管是spark SQL内置函数还是hive内置函数都属于这三种.

自定义函数的目的:

扩充函数,因为在进行业务分析的时候,有时候会用到某些功能,但是内置函数没有这些功能,于是进行自定义函数进行相关业务分析.

目前支持自定义函数:

spark sql  : UDF   UDAF

python语言只支持U D F 如果想要定义UDAF ,需要使用pandas U D F 实现

注意点:

在使用python  原生  spark sql  的UDF方案,整个执行效率不是很高,因为整个内部运算是一个来处理,一个个返回,这样会导致频繁进行  序列化和反序列化操作 从而影响效率.

后续改进操作: 采用jave 或者scala定义,然后python调用即可

目前主要版本:pandas的UDF函数解决,同时采用apache arrow内存数据结构框架来实现,提升整个执行效率.

spark sql定义UDF函数:

如何自定义UDF函数:

第一步:在python定义一个python函数

第二步:将这个函数注册到spark  sql中:

方式一:

参数1:UDF函数的名字,此名字可以在后续SQL中使用

参数2:python的函数名称(需要将那个python的函数进行注册,写上这dui函数的名称)
 
参数3:python函数的返回值类型

UDF对象: 应用在DSL中使用

方式二:
 udf对象 = F.udf(参数1,参数2)
参数说明:
参数1:  python的函数名称(需要将那个python的函数进行注册,写上这个函数的名称)'

参数2: python函数的返回值类型

UDF对象:应用在DSL中使用

第三步: 在DSL中SQL中使用即可.

spark SQL自定义函数:相关推荐

  1. Spark SQL自定义函数_第五章

    1.自定义函数分类 类似于hive当中的自定义函数, spark同样可以使用自定义函数来实现新的功能. spark中的自定义函数有如下3类 1.UDF(User-Defined-Function) 输 ...

  2. Spark SQL自定义函数

    文章目录 自定义函数分类 自定义UDF 自定义UDAF[了解] 自定义函数分类 类似于hive当中的自定义函数, spark同样可以使用自定义函数来实现新的功能. spark中的自定义函数有如下3类 ...

  3. spark sql自定义UDF函数-java语言

    背景说明 基于spark sql开发过程中,需要一些类似与官网提供的 int().from_json()等自定函数处理数据.下属将简单讲解通过java如何实现spark sql自定义函数 官方UDF接 ...

  4. MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源...

    MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ...

  5. sql 自定义函数 示例_SQL滞后函数概述和示例

    sql 自定义函数 示例 In the article SQL Server Lead function overview and examples, we explored Lead functio ...

  6. sql 自定义函数 示例_SQL Server SESSION_CONTEXT()函数与示例

    sql 自定义函数 示例 This article explores the SQL Server session context function, SESSION_CONTEXT() and pe ...

  7. sql自定义函数学习思路_学习SQL:用户定义的函数

    sql自定义函数学习思路 You can create several user-defined objects in a database. One of these is definitely u ...

  8. Spark SQL 开窗函数row_number的使用

    Spark SQL 开窗函数row_number的使用 窗口函数 row_number即为分组取topN 参考文本:                   型号                      ...

  9. sql 自定义函数 示例_SQL Server Choose()函数介绍和示例

    sql 自定义函数 示例 In the article, a CASE statement in SQL, we explored one of the important logical expre ...

最新文章

  1. Opencv java 角点检测 preCornerDetect(15)
  2. C# + ArcEngine 常用方法(不定时更新)
  3. 计算机网络基础(缩短版)
  4. 捕获Wscript.Quit的退出码
  5. 存入json文件_学成在线第8-2天讲义-课程图片管理 分布式文件系统 上传图片开发...
  6. Java面试题:String 和 StringBuffer、StringBuilder 的区别是什么?
  7. vue token过期如何处理_超市货架上摆放有过期食品如何定性处理?总局这样答复...
  8. 目标检测(一)目标检测算法综述
  9. 搞写商业计划书的要点
  10. ITK VKT 安装-详细
  11. 基于阿里语音识别(ASR)C/C++ SDK2.0编写的unimrcp中间件
  12. python网课 知乎_如何看待风变编程的 Python 网课
  13. 【Vue知识点- No5.】生命周期、axios、购物车案例
  14. 强大的合成器微信小程序源码支持视频,gif动态证件照等等几十种功能
  15. Chrome主页被强制修改为百度解决办法
  16. 计算机硬盘隐,终极电脑磁盘隐藏方法大全
  17. oracle 取1条记录,oracle 获取第一条数据
  18. UI设计中最重要的元素和原则是什么
  19. 人生的极致:大道至简 知行合一
  20. ROS智能车实现darknet_ros检测物体

热门文章

  1. 浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))
  2. 饥荒mod制作教程--物品(食物)该篇主讲贴图--01
  3. 旅游企业财务管理【2】
  4. Linux下清理磁盘数据方法
  5. 电脑无线共享手机wify上网
  6. 怎样用计算机计算分数除法,分数除法的计算方法
  7. 三星android获取root权限,三星i9000 Android 2.3.3获取root权限教程
  8. 东南大学和华中科技大学计算机哪个好,中南大学、东南大学、华中科技大学,这三所学校到底哪个好?...
  9. java none怎么用tomcat_关于如何在Tomcat中使用JavaBean
  10. 红叶李之虚拟机以及Centos安装