sprk sql自定义UDF函数
1 自定义UDF函数与scala定义函数的方式是一样的(也可以定义方法,调用的时候转换为函数即可)
2 自定义的函数需要注册后才能使用,注册的方式为 session.udf.register(自定义名称, 需注册的方法名)
. 其中Session为SparkSession对象.
自定义一个统计字符串长度的函数
object UserDefineFunction extends App {private val session: SparkSession = SparkSession.builder().appName("test").master("local").getOrCreate()private val frame: DataFrame = session.read.json("file:///D:\\SparkSql\\data\\emp.json")//维护一张临时表frame.createTempView("emp")//定义一个自定义函数val getLength = (str: String) => str.length//注册自定义的函数,两个参数,可以重新起一个名字session.udf.register("myLength", getLength)val sql ="""|select ename,|myLength(ename)|from emp|""".stripMargin//执行sqlsession.sql(sql).show()session.stop()
}
自定义一个依据sal进行区分等级的函数
object UserDefineFunction2 extends App {private val session: SparkSession = SparkSession.builder().appName("test").master("local").getOrCreate()//读取json数据转为DF对象private val frame: DataFrame = session.read.json("file:///D:\\git\\data\\emp.json")
//创建临时表frame.createTempView("emp")//注册自定义函数,第一个参数为自定义名称,第二个参数为函数,因为是方法,所以需要用_转为函数. 下划线与方法名之间用一个空格分隔session.udf.register("getLevel", getLevel _)
//调用自定义函数getLevelval sql ="""|select ename,|job,|sal,|getLevel(sal) as level|from emp|""".stripMargin
//执行sqlsession.sql(sql).show()session.stop()
//定义自定义方法,调用时候可以转为函数. 需要一个参数,调用时可以传入df的一个字段def getLevel(sal: Int): String = {if (sal > 3000) "level 1"else if (sal > 1500) "level 2"else "level 3"}
}
运行结果
+------+---------+------+-------+
| ename| job| sal| level|
+------+---------+------+-------+
| SMITH| CLERK| 800.0|level 3|
| ALLEN| SALESMAN|1600.5|level 2|
| WARD| SALESMAN|1250.0|level 3|
| JONES| MANAGER|2975.0|level 2|
|MARTIN| SALESMAN|1250.0|level 3|
| BLAKE| MANAGER|2850.0|level 2|
| CLARK| MANAGER|2450.0|level 2|
| SCOTT| ANALYST|3000.0|level 2|
| KING|PRESIDENT|5000.0|level 1|
|TURNER| SALESMAN|1500.0|level 3|
| ADAMS| CLERK|1100.0|level 3|
| JAMES| CLERK| 950.0|level 3|
| FORD| ANALYST|3000.0|level 2|
|MILLER| CLERK|1300.0|level 3|
+------+---------+------+-------+
sprk sql自定义UDF函数相关推荐
- spark sql自定义UDF函数-java语言
背景说明 基于spark sql开发过程中,需要一些类似与官网提供的 int().from_json()等自定函数处理数据.下属将简单讲解通过java如何实现spark sql自定义函数 官方UDF接 ...
- java调mongodb自定义函数,自定义UDF函数,从hive保存到mongodb
(可以通过idea工具调试UDF函数,第二步中会提供参考) 一.自定义UDF函数: 1.首先是pom.xml文件 xmlns:xsi="http://www.w3.org/2001/XMLS ...
- Hive _函数(系统内置函数、自定义函数、自定义UDF函数)
函数 系统内置函数 1.查看系统自带的函数 show functuions; 2.显示自带的函数的用法 desc function month; 3.详细显示自带的函数的用法 desc functio ...
- hive 转拼音udf_自定义UDF函数:将汉字转换成拼音
工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...
- 自定义UDF函数:将汉字转换成拼音
工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...
- 自定义UDF函数和UDTF函数
文章目录 1.创建maven项目,引入依赖 2.自定义函数 自定义UDF函数 自定义UDTF函数 hive调用jar包创造函数 方法1:上传到linux下导入hive 方法2:上传到hdfs上再导入h ...
- HIVE自定义UDF函数-经纬度转换成省市地址
目录 1.需求背景 2.解决方案 3.代码pom引用 4.代码集成UDF 5.编译jar包 6.使用说明 7.将jar包放到hdfs 8.创建持久化function 9.测试 10.结语 1.需求背景 ...
- 8.Hive基础—函数—系统内置函数、常用内置函数、自定义函数、自定义UDF函数、自定义UDTF函数
本文目录如下: 第8章 函数 8.1 系统内置函数 8.2 常用内置函数 8.2.1 空字段赋值 8.2.2 CASE WHEN THEN ELSE END 8.2.3 行转列 8.2.4 列转行 8 ...
- Hive 自定义UDF函数讲解
目录 一.UDF描述 二.UDF种类 三.自定义实现UDF和UDTF 3.1 需求 3.2 项目pom文件 3.3 Hive建表测试及数据 3.4UDF函数编写 3.5 UDTF函数编写 四:添加到h ...
最新文章
- 数字信号处理中的自相关和互相关计算和物理意义(一)
- Hystrix的应用案例:多短信供应商的自动切换与恢复
- Python Django 通过admin后台创建表数据
- nginx+keepalived搭建主从负载均衡并迅速切换
- python压缩教程_Python压缩模块zipfile实现原理及用法解析
- mysql 语句中的national 、 comment
- 技术栈是什么_我从找不到实习到拿大厂offer经历了什么?
- 微软Windows 10警告用户不要安装下载CCleaner,认为CCleaner是潜在危险软件(2020激活码序列号秘钥)
- sqlite数据库保存聊天记录
- list.php tid= field,DEDE5.7手机移动版实现与PC电脑版静态地址url一致教程(含伪静态规则) | 八戒哥技术博客...
- Fluentd日志采集使用教程
- E430 加装固态硬盘(SSD)参考
- R语言ggplot2 | 如何自定义facet分面的坐标轴范围
- 黑马程序员JS学习第一天
- clamped b_spline
- 【UML之宏观了解】
- vscode 配置ts自动转换成js文件
- Win11安装cad缺少net组件怎么办?
- python matplotlib 显示中文的问题
- Wireshark抓包实例诊断TCP连接问题
热门文章
- jsecharts如何改变占比_沪苏通铁路通车2个月,对海门人的生活改变了吗?
- hdfs java操作_hdfs java操作
- 计算机round是什么函数,round函数
- inno setup 环境变量 立即生效_CentOS7设置环境变量
- eclipse jdk配置_第一节:学会Java前提-手把手教你配置JDK环境变量
- wordpress虚拟服务器,西部数码虚拟主机安装wordpress教程
- linux轮训创建文件夹,Linux文件和目录管理相关命令(三)
- python提供了两种基本的数值类型_Python 基本数据类型
- mysql 核心笔记 逻辑符号 like
- css表格强制不换行符,css控制table单元格强制换行与强制不换行