文档章节

SparkSQLUDF自定义函数案例

别寒
 别寒
发布于 2017/07/31 14:28
字数 149
阅读 12
收藏 0
package com.hhb.spark.sql

import org.apache.spark.sql.{Row, SQLContext}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.types.{StructField, _}

/**
  * Created by dell on 2017/7/31.
  */
object UDF {
  def main(args: Array[String]) {
    val conf = new SparkConf()
      .setAppName("UDF")
      .setMaster("local")
      .set("spark.testing.memory", "2147480000")
    val sc = new SparkContext(conf)
    val sqlContext = new SQLContext(sc)

    // 构造模拟数据
    val names = Array("Leo", "Marry", "Jack", "Tom")
    val namesRDD = sc.parallelize(names, 5)
    val namesRowRDD = namesRDD.map{ name => Row(name) }
    val structType = StructType(Array(StructField("name", StringType, true)))
    val namesDF = sqlContext.createDataFrame(namesRowRDD, structType)

    // 注册一张names表
    namesDF.registerTempTable("names")

    // 定义和注册自定义函数
    // 定义函数:自己写匿名函数
    // 注册函数:sqlContext.usf.register()
    sqlContext.udf.register("strLen",(str: String) => str.length )

    // 使用自定义函数
    sqlContext.sql("select name, strLen(name) from names")
      .collect()
      .foreach(println)

  }
}

© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 29
博文 271
码字总数 137605
作品 0
永州
程序员
私信 提问
php朝花夕拾之strlen mb_strlen的函数的区别

涉及到一个字符编码问题 gbk编码:一个汉字占两个字节 utf8编码:一个汉字占3个字节 案例: 面试题目: 关于汉字字符串的截取: 案例: 案例2: 注意,上个案例中,用自定义的函数计算字符串...

成越
2016/09/06
16
0
[android底层]jni中获取自定义的类函数编写

本案例中编写 android app中对应的jni函数 static native Student getStudent(); jni中获取自定义的类函数描述定向总结 定义一个char *指向自定义类 1、返回类型:jobject 2、获取自定义的类 ...

lilin9105
2014/06/05
0
0
类似 Spring 的开源框架 - JCute

JCute 是什么 jcue是一套功能类似Spring的开源框架,基于JDK1.6开发,实现了Spring的大部分功能,但用法相对Spring要简洁,整体采用注解方式,代码清晰,功能灵活,用户也可扩展基于xml文件或...

看-野生程序猿
04/15
0
0
AntDB重分布流程记录

案例1 概述 重分布前 重分布后 重分布CASE 重分布SQL 分片方式 分片函数 分片字段 分片节点 分片方式 分片函数 分片字段 分片节点 1、复制表重分布成复制表。 2、节点减少。 alter table t ...

Zaclu
01/30
1
0
python数据分析及处理案例技巧11-20(基于jupyter)

案例11:cut函数与数据分组 1)cut的用法 设置包含最小值, 不包括左,包括右,可用right = False包括左,不包括右 显示成组别格式 数值统计: 还可以不指定面元的界限,直接传入一个整数参数...

pbgc396dwxjb77f2je
2017/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一...

TSMYK
17分钟前
0
0
IC-CAD Methodology企业实战之openlava

在云计算解决安全问题并成为IC界主流运算平台之前,私有的服务器集群系统仍然是各大IC公司的计算资源平台首选。 现在主流的服务器集群管理系统包括lsf,openlava,SkyForm,三者都属于lsf一系...

李艳青1987
32分钟前
2
0
http response stream 字节流 接收与解码

在接收图片、音频、视频的时候,需要用到二进制流。 浏览器会发给客户端 字节Byte流,一串串的发过来_int8格式 -128~127(十进制),也就是8bit(位)。 客户端接收的时候,对接收到的字节收集,...

大灰狼wow
32分钟前
2
0
配置Tomcat监听80端口...

12月13日任务 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 1.配置Tomcat监听80端口 示例一:自定义监听端口 vim /usr/local/tomcat/conf/server.xml 编辑...

hhpuppy
32分钟前
3
0
在ubuntu中配置java环境

先在官网下载一个jdk 进入root权限,避免之后出现创建文件失败或者修改文本失败的问题 sudo i 创建一个文件夹来放置jdk解压后的文件 mkdir 文件夹mv jdk1.9(你下载的jdk文件) 你创建 的文...

无极之岚
33分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部