背景说明

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

官方UDF接口说明

官方提供了0-22 UDF接口,UDF0代表无参数输入只有返回参数,UDF1接口表示有一个入参,含义以此类推

UDF1官方接口说明

package org.apache.spark.sql.api.java;import java.io.Serializable;
import org.apache.spark.annotation.InterfaceStability.Stable;@Stable
public interface UDF2<T1, T2, R> extends Serializable {R call(T1 var1, T2 var2) throws Exception;
}

UDF2<T1, T2, R> :T1代表第一个输入参数类型,T2代表第二个输入参数类型,R代表返回参数类型

实现案例

将下属数据在spark sql里面实现 logs.age=age_01 的数据找到一条返回name名称。
在spark sql里面的虚拟表名称为 logs_view

{"age_01": 20,"logs": [{"age": 20,"name": "悠悠球"},{"age": 21,"name": "棒棒冰"}]
}

实现代码

import org.apache.spark.sql.api.java.UDF2;
import org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema;
import scala.collection.mutable.WrappedArray;public class GetLogAge implements UDF2<WrappedArray, Integer, String> {@Overridepublic Long call(WrappedArray logs, Integer age_01) throws Exception {for(int z=0; z<logs.size(); z++){GenericRowWithSchema log = (GenericRowWithSchema)dependUnits.apply(z);long age_ = log.getAs("age");if(age_ == age_01){return log.getAs("name");}}return "";}}

注册函数

sqlContext.udf().register("get_logs_name", new GetLogAge(),DataTypes.StringType);

调用

sqlContext.sql("select age_01,logs, get_logs_name(logs, age_01) as name from logs_view ").show()

spark sql自定义UDF函数-java语言相关推荐

  1. sprk sql自定义UDF函数

    1 自定义UDF函数与scala定义函数的方式是一样的(也可以定义方法,调用的时候转换为函数即可) 2 自定义的函数需要注册后才能使用,注册的方式为 session.udf.register(自定义名 ...

  2. spark SQL自定义函数:

    spark SQL 自定义函数: 自定义函数: 第一种:  U D F  (用户自定义函数)函数 特点:  一对一的关系,输入一个值以后输出一个值  (一进一出) 大部分的内置函数都是U D F函数 ...

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

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

  4. Spark SQL自定义函数

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

  5. java调mongodb自定义函数,自定义UDF函数,从hive保存到mongodb

    (可以通过idea工具调试UDF函数,第二步中会提供参考) 一.自定义UDF函数: 1.首先是pom.xml文件 xmlns:xsi="http://www.w3.org/2001/XMLS ...

  6. Spark SQL 中UDF的讲解

    Spark SQL 中UDF的讲解 User Define Function, 用户自定义函数,简称UDF,存在与很多组件中. 在使用Sparksql的人都遇到了Sparksql所支持的函数太少了的难 ...

  7. Hive _函数(系统内置函数、自定义函数、自定义UDF函数)

    函数 系统内置函数 1.查看系统自带的函数 show functuions; 2.显示自带的函数的用法 desc function month; 3.详细显示自带的函数的用法 desc functio ...

  8. hive 转拼音udf_自定义UDF函数:将汉字转换成拼音

    工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

  9. 自定义UDF函数:将汉字转换成拼音

    工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

最新文章

  1. python数据分析面试_python数据分析面试
  2. apache开源项目--Sirona
  3. deepin终端编译c程序_Deepin Linux安装使用Visual Studio Code(VSCode)调试C++
  4. BZOJ2535 [Noi2010]Plane 航空管制 【贪心 + 堆】
  5. 《孩子,你如此优美:一位作家母亲的家教笔记》
  6. Python之数据分析(星期均值、星期汇总、Numpy的take与where方法、apply_along_axis函数)
  7. Javascript:获取点击的li标签内部文字
  8. 合肥工业大学计算机学院王院长,合肥工业大学计算机与信息学院硕士研究生导师介绍:唐益明...
  9. 深入理解javascript原型和闭包系列
  10. C++ 五课时入门教学
  11. 阉割版BeagleBone Black从SD卡运行Debain操作系统
  12. 数字证书如何写入到ukey_ukey身份认证步骤
  13. 连点器android版本,连点器安卓手机版
  14. Android Studio插件GsonFormat快速实现JavaBean
  15. latex编译报错:Font ntx-Regular- tlf-ot1r at 438 not found
  16. [技术随笔(一)] 文件分割的两种方法
  17. 百度云不限速下载最新破解真好用
  18. 软件过程的价值观、原则以及实践——从敏捷说起
  19. 乡愁 - 怀念老者余光中
  20. inline-block是什么意思

热门文章

  1. css实现折叠样式实现
  2. 我13年就学会了 Go,现在又要学一次
  3. html2Canvas+JsPDF 导出pdf 无法显示网络图片
  4. 为什么今天(10月24日)是程序员节?
  5. 电商离线数仓-业务数仓指标(GMV主题/转化率主题)
  6. Python绘制柱形图:2013—2019财年阿里巴巴淘宝和天猫平台的GMV
  7. Chris Paul
  8. not a valid SHA1
  9. 书评:Pro .NET 4 Parallel Programming in C#
  10. 18708 最大子段和