SparkSQL DSL 随便写写
@Test
def functionTest() = {
Logger.getLogger("org").setLevel(Level.WARN)
val spark = getSpark("functionTest")
val sc = spark.sparkContext
import spark.implicits._ //-------------------------
val stus = Seq(Student(1001, "jack", "M", 20),
Student(1004, "mary", "F", 18),
Student(1017, "alice", "F", 23),
Student(1026, "tom", "M", 20),
Student(1007, "leo", "M", 22),
Student(1008, "wood", "M", 22)).toDS() /* //---------select----------
stus.select("id","name").show()
stus.select($"id",$"name",$"age"+10).show()
import org.apache.spark.sql.functions._
stus.select(col("id"),col("name")).show()
stus.select(stus("id"),stus("gender")).show()
stus.selectExpr("id","name","age/10").show() //-----filter == where------
stus.filter(stu => stu.age >22).show()
stus.filter("name in ('jack','alice')").show()
stus.filter($"gender" === "M").show() // stus.where() //底层调用filter
//--------group by---------
stus.groupBy("gender").count().show()
stus.groupBy("gender").sum("age").show()
val map = Map(("age","sum"),("*","count"))
stus.groupBy("gender").agg(map).show() stus.groupBy("gender").agg(("age","sum"),("age","count")).show() println("--------神奇操作---------")
stus.groupBy("gender").count().show()
stus.groupBy("gender","age").count().show()
//pivot 透视 把未分组的列中的数据进行分组,并转置成列名,再对每个列名下的数据进行聚合
stus.groupBy("gender").pivot("age").count().show() //--------order by---------
stus.orderBy($"age" desc).show() //-------- join ---------
val scos = Seq(Score(1001,"语文",60.0),
Score(1004,"数学",90.0),
Score(1019,"物理",70.0),
Score(1099,"化学",80.0)).toDS()
stus.join(scos,stus("id") === scos("id"),"inner").show()
stus.join(scos,stus("id") === scos("id"),"left").show()
stus.join(scos,stus("id") === scos("id"),"right").show()
stus.join(scos,stus("id") === scos("id"),"full").show()
*/ val s = Seq("y", "e", "k")
val fun: String => Boolean = (name: String) => {
val last = name.substring(name.length-1)
s.contains(last)
}
spark.udf.register("lastIsX",fun) stus.createTempView("student") spark.sql("select * from student where lastIsX(name)").show() spark.close()
}
SparkSQL DSL 随便写写的更多相关文章
- 没有什么,开发ASP.NET时随便写写,想到什么写什么
没有什么,开发ASP.NET时随便写写,想到什么写什么,这次想写点开发过程中,比如在数据库,某一张表中有一个字段,如下: 上面代码示例中高亮字段,数据类型为BIT,它存储的值将为"True& ...
- SparkSQL DSL开发(Old)
import org.apache.spark.sql.SQLContextimport org.apache.spark.sql.expressions.Windowimport org.apach ...
- 【随便写写】印象笔记,WordPress,CSDN 等 写博客的不同
之前有的文章,写在了印象笔记里面,有的文章,写在了自己的WordPress博客里面,但是,感觉还是需要在主流平台分享一下文章的.就再次写写文章吧.(PS:公众号最重要的不是写作,而是排版) 说说几个这 ...
- <随便写写>
# Markdown用法 整理
- 随便写写,当作了解--Css
Css,Cascading Style Sheets,层叠样式表.用于控制HTML页面样式.他的基本格式由两部分组成: 选择器 声明块 一.使用 css的注释用 /* 注释内容 */ 1.导入外部样式 ...
- python3第一天,随便写写
哈哈 我滴第一篇博客,不知道咋写,随意看了看别人的博客,我还是不知道咋写,既然是我的博客,那我就把它当随笔写了(这里就是添加随笔...) 也不知道自己说了啥,不过想到了一句话:日记都是写给别人看的.哈 ...
- 随便写写,也有一些参考了我jio的很好的他人的成果
Spring框架学习记录(1) 一. https://www.cnblogs.com/yuanqinnan/p/10274934.html (一)只要用框架开发java,一定躲不过spring,Spr ...
- c#随便写写 数据层和表现层,队列执行
base.xxx() 调用父类的方法
- 被逼着写的jquery工作日管理日历插件
因为工作原因,在我刚进入新公司之后,立马要求让我做一个jquery的插件demo.我的天,我面试的可是.net工程师啊.虽然以前接触过js,jquery,但也只是接触过一丢丢啊,没办法,只好硬着头皮上 ...
随机推荐
- 使用java实现希表的基础功能
用java代码完成哈希表数据结构的简单实现, 以公司雇员的添加修改作为模拟实例 具体代码如下: package com.seizedays.hashtable; import java.util.Sc ...
- Jenkins部署jmx脚本
针对jenkins+jmeter做接口自动化,jmeter完成测试脚本录入和撰写,而jenkins负责持续集成和报告收集.那么从零实现jenkins可以从以下角度实现 首先需要安装jenkins ...
- 安排上了!PC人脸识别登录,出乎意料的简单
本文收录在个人博客:www.chengxy-nds.top,技术资源共享. 之前不是做了个开源项目嘛,在做完GitHub登录后,想着再显得有逼格一点,说要再加个人脸识别登录,就我这佛系的开发进度,过了 ...
- Python time localtime()方法
描述 Python time localtime() 函数类似gmtime(),作用是格式化时间戳为本地的时间.高佣联盟 www.cgewang.com 如果sec参数未输入,则以当前时间为转换标准. ...
- PHP fileperms() 函数
定义和用法 fileperms() 函数返回文件或目录的权限. 如果成功,该函数以数字形式返回权限.如果失败,则返回 FALSE. 语法 fileperms(filename) 参数 描述 filen ...
- HTML <body> 标签
HTML <body> 标签 实例 一个简单的 HTML 文档,包含尽可能少的必需的标签: <!DOCTYPE html> <html> <head> ...
- PHP zip_entry_name() 函数
定义和用法 zip_entry_name() 函数返回 zip 档案的名称.高佣联盟 www.cgewang.com 语法 zip_entry_name(zip_entry) 参数 描述 zip_en ...
- PHP mb_substr() 函数
实例 从字符串中返回 "菜鸟": <?php echo mb_substr("菜鸟教程", 0, 2); // 输出:菜鸟 ?> 定义和用法 mb_ ...
- PDO::getAvailableDrivers
PDO::getAvailableDrivers — 返回一个可用驱动的数组(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 static array P ...
- dsu on tree详解
这个算法还是挺人性化的,没有什么难度 就是可能看起来有点晕什么的. 大体 思想是 利用重链刨分来优化子树内部的查询. 考虑一个问题要对每个子树都要询问一次.我们暴力显然是\(n^2\)的. 考虑一下优 ...