广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SparkSQL的自定义函数UDF使用
  • 829
分享到

SparkSQL的自定义函数UDF使用

SparkSQLUDFSpark自定义函数UDF 2023-02-01 15:02:37 829人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录spark_sql的UDF使用UDF简单使用Spark_SQL的UDF使用 用户自定义函数,也叫UDF,可以让我们使用python/Java/Scala注册自定义函数,并在SQL

Spark_SQL的UDF使用

用户自定义函数,也叫UDF,可以让我们使用python/Java/Scala注册自定义函数,并在SQL中调用。这种方法很常用,通常用来给机构内的SQL用户们提供高级功能支持,这样这些用户就可以直接调用注册的函数而无需自己去通过编程来实现了。

  • 在Spark SQL中,编写UDF 尤为简单。Spark SQL不仅有自己的UDF接口,也支持已有的Apache Hive UDF。我们可以使用Spark支持的编程语言编写好函数,然后通过Spark SQL内建的方法传递进来,非常便捷地注册我们自己的UDF。
  • 在Scala和Python中,可以利用语言原生的函数和lambda语法的支持,而在Java中,则需要扩展对应的UDF类。UDF能够支持各种数据类型,返回类型也可以与调用时的参数类型完全不一样。

UDF简单使用

首先通过代码建立一个测试的DataFrame数据,通过RDD产生,再转换成DataFrame格式,通过写简单的UDF函数,对数据进行操作并输出,例如:

import org.apache.spark.sql.Row
import org.apache.spark.rdd._
import scala.collection.mutable.ArrayBuffer
import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType}
// 通过RDD创建测试数据
val rdd: RDD[Row] = sc.parallelize(List("Michael,male, 29",            
"Andy,female, 30",
"Justin,male, 19",
"Dela,female, 25",
"Magi,male, 20",
"Pule,male,21"))
.map(_.split(",")).map(p => Row(p(0),p(1),p(2).trim.toInt))
// 创建Schema
val schema = StructType( Array( StructField("name",StringType, true),StructField("sex",StringType, true),StructField("age",IntegerType,true)))
// 转换DataFrame  
val peopleDF = spark.sqlContext.createDataFrame(rdd,schema) 
// 注册UDF函数    
spark.udf.reGISter("strlen",(x:String)=>x.length)
// 创建临时表       
peopleDF.registerTempTable("people")                  
// 选择输出语句,(选择输出列:名字,名字长度,性别从表people中)
spark.sql("select name, strlen(name) as strlen,sex from people").show()

创建 DataFrame

scala> val df = spark.read.JSON("data/user.json")
df: org.apache.spark.sql.DataFrame = [age: bigint, username: string]

注册 UDF

scala> spark.udf.register("addName",(x:String)=> "Name:"+x)
res9: org.apache.spark.sql.expressions.UserDefinedFunction = 
UserDefinedFunction(<function1>,StringType,Some(List(StringType)))

创建临时表

scala> df.createOrReplaceTempView("people")

应用 UDF

scala> spark.sql("Select addName(name),age from people").show()

到此这篇关于Spark SQL的自定义函数UDF使用的文章就介绍到这了,更多相关Spark SQL UDF内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SparkSQL的自定义函数UDF使用

本文链接: https://www.lsjlt.com/news/193858.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SparkSQL的自定义函数UDF使用
    目录Spark_SQL的UDF使用UDF简单使用Spark_SQL的UDF使用 用户自定义函数,也叫UDF,可以让我们使用Python/Java/Scala注册自定义函数,并在SQL...
    99+
    2023-02-01
    Spark SQL UDF Spark自定义函数UDF
  • spark2.4.3中sparkSQL用户自定义函数该怎么理解
    这期内容当中小编将会给大家带来有关spark2.4.3中sparkSQL用户自定义函数该怎么理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、简介从Spark2.0以上的版本开始,spark是使用全新...
    99+
    2023-06-02
  • Hive中如何配置与编写自定义UDF函数
    小编给大家分享一下Hive中如何配置与编写自定义UDF函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!环境介绍:CentOS7+hive-1.1.0-cdh6....
    99+
    2023-06-03
  • vue3的自定义hook函数使用
    目录自定义hook函数使用vue3 hooks函数示例官方示例代码---封装前使用hooks函数封装后hooks函数自定义hook函数使用 使用Vue3的组合API封装的可复用的功能...
    99+
    2022-11-13
  • 使用JavaScript 定义自己的ajax函数
    由于用原生js的方式发起的网络请求,都是以查询字符串的形式,提交给服务器的,用户以对象的形式提交参数的话会比较方便,所以需要把用户传递过来的参数对象进行处理,定义resolveDat...
    99+
    2022-11-12
  • 如何使用mysql自定义函数
    这篇文章主要讲解了如何使用mysql自定义函数,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。什么是函数:函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以...
    99+
    2022-10-18
  • MySQL内置函数和自定义函数怎么使用
    这篇“MySQL内置函数和自定义函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL内置函数和自定义函数怎么...
    99+
    2023-07-02
  • 如何使用JavaScript定义自己的ajax函数
    这篇文章将为大家详细讲解有关如何使用JavaScript定义自己的ajax函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。由于用原生js的方式发起的网络请求,都是以查询字符串的形式,提交给服务器的,用户...
    99+
    2023-06-21
  • 使用自定义函数验证 MySQL 中的日期
    让我们创建一个自定义函数来验证 MySQL 中的日期 -mysql> set global log_bin_trust_function_creators=1; Query OK, 0 rows affected (0.03 sec)...
    99+
    2023-10-22
  • tensorflow2 自定义损失函数使用的隐藏坑
    Keras的核心原则是逐步揭示复杂性,可以在保持相应的高级便利性的同时,对操作细节进行更多控制。当我们要自定义fit中的训练算法时,可以重写模型中的train_step方法,然后调用...
    99+
    2022-11-12
  • python如何调用自定义函数
    要调用自定义函数,需要按照以下步骤进行:1. 定义一个函数。例如,我们定义一个名为`add_numbers`的函数,用于求两个数的和...
    99+
    2023-09-29
    python
  • mysql自定义函数如何调用
    本篇内容介绍了“mysql自定义函数如何调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!操作步骤:1、首...
    99+
    2022-10-19
  • mysql怎么调用自定义函数
    mysql调用自定义函数的方法:1、在Navicat工具中点击界面上的“函数”。进入函数操作界面后点击新建函数。2、继续点击弹窗中的“函数”。3、设置函数的参数名和参数类型。设置完成后点击“下一步”。4、继续设置函数的返回类型。设置后点击“...
    99+
    2022-10-17
  • python如何引用自定义函数
    python引用自定义函数的方法:1、自定义函数中的无参函数的引用:可直接输入函数名,或者将其赋值给一个变量。2、自定义函数中的有参数的函数的引用,只需在括号内加入变量即可。具体操作步骤:引用自定义函数中的无参函数,可直接输入函数名,或者将...
    99+
    2022-10-21
  • JavaScript自定义函数用法详解
    JavaScript中的函数分为两种:系统函数和自定义函数,这里主要讲解自定义函数。 自定义函数 1、语法: 注意: 传入的参数是可选的。 例如: <!DOCTYPE htm...
    99+
    2022-11-13
  • python-自定义函数(定义调用、默认参数、返回值)
    python-自定义函数 文章目录 python-自定义函数初识函数函数的定义与调用函数的定义:参数列表:函数体:函数调用 默认参数定义默认参数:默认参数的使用:默认参数的位置:默认参数...
    99+
    2023-09-10
    python 开发语言 numpy
  • javascript的自定义函数是什么
    这篇文章主要讲解了“javascript的自定义函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript的自定义函数是什么”吧! ...
    99+
    2022-10-19
  • matlab如何自定义函数并调用
    要自定义一个函数并调用它,可以按照以下步骤进行:1. 创建一个新的.m文件,用于定义函数。可以使用MATLAB编辑器或任何文本编辑器...
    99+
    2023-09-05
    matlab
  • Linux下怎么编写和使用自定义的Shell函数和函数库
    本篇内容主要讲解“Linux下怎么编写和使用自定义的Shell函数和函数库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么编写和使用自定义的Shell函数和函数库”吧!在 Linu...
    99+
    2023-06-16
  • PHP对Mysql操作的自定义函数
     <php function db_connect($host,$user,$pwd,$name,$charset) { $link = mysqli_...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作