SQL操作Spark SQL--BasicSQLTestt
object BasicSQLTest {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("BasicSQLTest")
.getOrCreate()
val sessionDf = spark.read.parquet(s"${BASE_PATH}/trackerSession")
sessionDf.printSchema()
sessionDf.createOrReplaceTempView("trackerSession")
//查询所有记录
val sessionRecords = spark.sql("select * from trackerSession")
sessionRecords.show()
//过滤
val filterSession =
spark.sql("select distinct(cookie) from trackerSession where cookie_label = '固执'")
filterSession.show()
//先join, 然后再分组SQL
val logDf = spark.read.parquet(s"${BASE_PATH}/trackerLog")
logDf.printSchema()
logDf.createOrReplaceTempView("trackerLog")
val sql =
"""select tl.url, count(*) from trackerLog tl join trackerSession ts on tl.cookie = ts.cookie
| where ts.cookie_label = '固执' and tl.log_type='pageview'
| group by tl.url
| order by tl.url desc
""".stripMargin
spark.sql(sql).show(false)
//函数(内置函数)
//单行函数
spark.sql("select session_server_time, " +
"hour(session_server_time) as hour from trackerSession").show(false)
spark.sql("select click_count, cookie_label, " +
"concat(click_count, cookie_label) as c from trackerSession").show()
//多行函数(聚合函数)
val ccmDF = spark.sql("select max(click_count) as ccm from trackerSession")
ccmDF.printSchema()
ccmDF.show()
//udf
spark.udf.register("myUDF", (arg1: Int, arg2: String) => {
if (arg1 > 1 && arg2.equals("固执")) {
arg2 + arg1
} else {
arg2 + "less"
}
})
spark.sql("select click_count, cookie_label, myUDF(click_count, cookie_label) " +
"as c from trackerSession").show()
spark.stop()
}
}
SQL操作Spark SQL--BasicSQLTestt的更多相关文章
- SQL操作Spark SQL--CatalogApiTest
object CatalogApiTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() ...
- Spark SQL 之 Data Sources
#Spark SQL 之 Data Sources 转载请注明出处:http://www.cnblogs.com/BYRans/ 数据源(Data Source) Spark SQL的DataFram ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- Spark 官方文档(5)——Spark SQL,DataFrames和Datasets 指南
Spark版本:1.6.2 概览 Spark SQL用于处理结构化数据,与Spark RDD API不同,它提供更多关于数据结构信息和计算任务运行信息的接口,Spark SQL内部使用这些额外的信息完 ...
- Spark SQL 官方文档-中文翻译
Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Spark官方1 ---------Spark SQL和DataFrame指南(1.5.0)
概述 Spark SQL是用于结构化数据处理的Spark模块.它提供了一个称为DataFrames的编程抽象,也可以作为分布式SQL查询引擎. Spark SQL也可用于从现有的Hive安装中读取数据 ...
- Spark SQL数据源
[TOC] 背景 Spark SQL是Spark的一个模块,用于结构化数据的处理. ++++++++++++++ +++++++++++++++++++++ | SQL | | Dataset API ...
- Spark SQL官方文档阅读--待完善
1,DataFrame是一个将数据格式化为列形式的分布式容器,类似于一个关系型数据库表. 编程入口:SQLContext 2,SQLContext由SparkContext对象创建 也可创建一个功能更 ...
随机推荐
- pvs显示unknown device
一 .不要unknown的那块pv盘的解决办法 [root@gezi ~]# pvs WARNING: Device for PV D1LLfT-3Hle-NbrP-5165-Q6WR-2UWF-2x ...
- 【手写代码】计算1-n中总共有多少二进制1
#include<bits/stdc++.h> #include<vector> using namespace std; //时间复杂度:O(N) int f(int x) ...
- [SOJ #498]隔膜(2019-10-30考试)/[POJ2152]Fire
题目大意:有一棵$n$个点的带边权树,第$i$个点有两个值$w_i,d_i$,表示在这个点做标记的代价为$w_i$,且这个点距离$d_i$以内至少要有一个点被标记,为最小代价.$n\leqslant6 ...
- Android 系统架构 和 各个版本代号介绍
一.Android 系统架构: 1. linux内核层Android 基于Linux内核,为Android设备的各种硬件提供底层驱动 比如: 显示驱动.音频.照相机.蓝牙.Wi-Fi驱动,电源管理等 ...
- C# 获取某个时间的0点0分和23点59分59秒
C#获取当月第一天和最后一天 当月第一天0时0分0秒: DateTime.Now.AddDays( - DateTime.Now.Day).Date 当月最后一天23时59分59秒: DateTime ...
- kubernetes使用securityContext和sysctl
前言 在运行一个容器时,有时候需要使用sysctl修改内核参数,比如net..vm..kernel等,sysctl需要容器拥有超级权限,容器启动时加上--privileged参数即可.那么,在kube ...
- K8S使用问题汇总
1,报错如下 Warning: kubectl apply should be used on resource created by either kubectl create --save-con ...
- 30个关于Shell脚本的经典案例(中)
本文目录 11.iptables自动屏蔽访问网站频繁的IP 12.判断用户输入的是否为IP地址 13.判断用户输入的是否为数字 14.给定目录找出包含关键字的文件 15.监控目录,将新创建的文件名追加 ...
- 【开发工具】- Java开发必知工具
压力测试工具_JMeter 作用 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC). 2.完全的可移植性和100% 纯java. 3.完全 Swi ...
- java基本结构
前言 Java文件的运行过程: 1,javac.exe:编译器 2,java.exe:解释器 微软shell下运行实例: C:\Users\Administrator>cd D:\文档\JAVA ...