sparkSQL实际应用
提交代码包
/usr/local/spark/bin$ spark-submit --class "getkv" /data/chun/sparktes.jar
1、查询KV
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object kv{
def main(args: Array[String]) { val conf = new SparkConf()
val sc = new SparkContext(conf)
val log=sc.textFile("hdfs://10.0.58.21:9000/falcon/2016/*/*/*.log")
val rowRDD=log.map(line=>(line.split("\"message\":\"").last.split(" ").head.trim(),line.split("account: ").last.split(", args:").head))
val k=rowRDD.filter({case(k,v) =>k.length== && !k.contains("TypeError:")}).filter({case(k,v)=>v.length==})
k.repartition().saveAsTextFile("file:////data/kv")
}
}
2、关联MySQL
# spark-shell --driver-class-path /usr/local/spark/mysql/mysql.jar
val log=sc.textFile("hdfs://10.0.58.21:9000/falcon/2016/*/*/*.log") val rowRDD=log.map(line=>(line.split("\"message\":\"").last.split(" ").head.trim(),line.split("account: ").last.split(", args:").head)) val k=rowRDD.filter({case(k,v) =>k.length==10 && !k.contains("TypeError:")}).filter({case(k,v)=>v.length==7}) val s=k.toDF("date","No").registerTempTable("kv") val role=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","role")
val job=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","job")
val staff_and_job=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","staff_and_job")
val project=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","project") val ro=role.toDF().registerTempTable("role")
val jo=job.toDF().registerTempTable("job")
val s=staff_and_job.toDF().registerTempTable("staff_and_job")
val p=project.toDF().registerTempTable("project") val q=sqlContext.sql("SELECT project.`name`,project.`code`,staff_and_job .`staff_id` FROM project LEFT JOIN job ON project.`code`=job.`project_code` LEFT JOIN role ON job.`role_code`=role.`code` LEFT JOIN staff_and_job ON job.`id`=staff_and_job .`job_id` WHERE project.`is_spread`='' AND role.`name`='人事专员' AND staff_and_job .`staff_id` IS NOT NULL")
val q1=q.toDF("name","code","No").registerTempTable("p") val ed=sqlContext.sql("select p.name,count(distinct kv.No) from p join kv on p.No=kv.No group By p.name")
3 、项目关联活跃用户数
val log=sc.textFile("hdfs://10.0.58.21:9000/falcon/2016/*/*/*.log")
val rowRDD=log.map(line=>(line.split("\"message\":\"").last.split(" ").head.trim(),line.split("account: ").last.split(", args:").head))
val k=rowRDD.filter({case(k,v) =>k.length==10 && !k.contains("TypeError:")}).filter({case(k,v)=>v.length==8})
val s=k.toDF("date","No").registerTempTable("kv")
val user=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","user")
val house=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","house")
val project=sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","project")
val us=user.toDF().registerTempTable("user")
val h=house.toDF().registerTempTable("house")
val pr=project.toDF().registerTempTable("project")
val q1=sqlContext.sql("select project.`name`,kv.date,count(distinct kv.No) from user join kv on kv.No=user.id left join house on user.`main_house_code`=house.`code` left join project on house.`project_code`=project.`code` where kv.date>='2016-05-01' and kv.date<='2016-05-16' and project.name='苏州金色里程' group by project.name,kv.date")
val q1=sqlContext.sql("select project.`name`,count(distinct kv.No) from user join kv on kv.No=user.id left join house on user.`main_house_code`=house.`code` left join project on house.`project_code`=project.`code` where kv.date>='2016-05-01' and kv.date<='2016-05-16' and project.name='苏州金色里程' group by project.name,kv.date")
q1.repartition(1).rdd.saveAsTextFile("file:////data/kvv")
4、活动页面浏览
spark-shell --driver-class-path /usr/local/spark/mysql/mysql.jar
val log=sc.textFile("hdfs://10.0.58.21:9000/falcon/2016/05/16/*.log")
val log=sc.textFile("hdfs://10.0.58.21:9000/user/yejin/*.log")
val k=f.filter({case(k,v) =>k.length==10 && !k.contains("TypeError:")}).filter({case(k,v)=>v.length==8})
val s=k.toDF("date","No").registerTempTable("kv")
5、员工关联岗位
val log=sc.textFile("hdfs://10.0.58.21:9000/user/yejin/*.log")
val rowRDD=log.map(line=>(line.split("\"message\":\"").last.split(",").head.trim(),line.split("account: ").last.split(", args:").head))
val k=rowRDD.filter({case(k,v) =>k.length== && !k.contains("TypeError:")}).filter({case(k,v)=>v.length==})
val l=k.toDF("date","No").registerTempTable("kv")
val staff_and_job =sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","staff_and_job")
val job =sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","job")
val role =sqlContext.jdbc("jdbc:mysql://rdssw603u1t68figaia7.mysql.rds.aliyuncs.com:3306/falcon?user=wy_app&password=V0tkEIve2","role")
val sj=staff_and_job.toDF().registerTempTable("staff_and_job")
val jb=job.toDF().registerTempTable("job")
val rl=role.toDF().registerTempTable("role")
val ed=sqlContext.sql("SELECT staff_and_job.`staff_id`,role.`name` FROM staff_and_job LEFT JOIN job ON staff_and_job.`job_id`=job.`id` LEFT JOIN role ON job.`role_code`=role.`code`")
val xy=ed.toDF("No","Name").registerTempTable("T")
val r=sqlContext.sql("select T.Name,count(distinct kv.No) from T join kv on kv.No=T.No where kv.date='2016-05-09' group by T.Name")
r.repartition(1).rdd.saveAsTextFile("")
sparkSQL实际应用的更多相关文章
- 踩坑事件:windows操作系统下的eclipse中编写SparkSQL不能从本地读取或者保存parquet文件
这个大坑... .... 如题,在Windows的eclipse中编写SparkSQL代码时,编写如下代码时,一运行就抛出一堆空指针异常: // 首先还是创建SparkConf SparkConf c ...
- sparksql udf的运用----scala及python版(2016年7月17日前完成)
问:udf在sparksql 里面的作用是什么呢? 答:oracle的存储过程会有用到定义函数,那么现在udf就相当于一个在sparksql用到的函数定义: 第二个问题udf是怎么实现的呢? regi ...
- spark-sql性能测试
一,测试环境 1) 硬件环境完全相同: 包括:cpu/内存/网络/磁盘Io/机器数量等 2)软件环境: 相同数据 ...
- SparkSQL读取Hive中的数据
由于我Spark采用的是Cloudera公司的CDH,并且安装的时候是在线自动安装和部署的集群.最近在学习SparkSQL,看到SparkSQL on HIVE.下面主要是介绍一下如何通过SparkS ...
- SparkSQL(源码阅读三)
额,没忍住,想完全了解sparksql,毕竟一直在用嘛,想一次性搞清楚它,所以今天再多看点好了~ 曾几何时,有一个叫做shark的东西,它改了hive的源码...突然有一天,spark Sql突然出现 ...
- Spark入门实战系列--6.SparkSQL(上)--SparkSQL简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .SparkSQL的发展历程 1.1 Hive and Shark SparkSQL的前身是 ...
- Spark入门实战系列--6.SparkSQL(中)--深入了解SparkSQL运行计划及调优
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.1 运行环境说明 1.1.1 硬软件环境 线程,主频2.2G,10G内存 l 虚拟软 ...
- Spark入门实战系列--6.SparkSQL(下)--Spark实战应用
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .运行环境说明 1.1 硬软件环境 线程,主频2.2G,10G内存 l 虚拟软件:VMwa ...
- 大数据——sparksql
sparksql:http://www.cnblogs.com/shishanyuan/p/4723604.html?utm_source=tuicool spark on yarn :http:// ...
- SparkSql 不支持Date Format (支持Timestamp)
最近项目中需要用到sparksql ,需要查询sql Date类型, 无奈,官方现阶段 1.6.0 还不支持Date类型,不过支持Timestamp类型,所以问题可以解决了. 1.解析 SimpleD ...
随机推荐
- 命令行下mysql新建用户及分配权限
创建用户: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username – 你将创建的用户名, host – 指定该用户在哪 ...
- JVM——代空间的划分
首先看在JVM的堆中,按代的划分: Young:主要是用来存放新生的对象. Old:主要存放应用程序中生命周期长的内存对象. Permanent:是指内存的永久保存区域,主要存放Class和Meta的 ...
- 记录 dts 里面添加 SD cd
很多设备树一开始 SD 卡选项并未添加 SD 卡触发 // dts 741 &mmc1 { 742 vmmc-supply = <&vmmcsd_fixed>; 743 s ...
- c语言编程-----指向二维数组的指针
c中如何返回一个指向二维数组的指针 #include <stdio.h> #include <stdlib.h> #define COUNT 3 typedef int (*M ...
- 如何检查CentOS服务器受到DDOS攻击
登录到你的服务器以root用户执行下面的命令,使用它你可以检查你的服务器是在DDOS攻击与否: netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | c ...
- vbs中的"WScript.Network"[属性与方法]
属性ComputerName 计算机名UserDomain 所属局域网域的域名UserName ...
- ES06--elasticsearch
ES06--elasticsearch unassigned错误解决(手动处理) 查看集群健康状态:curl -XGET http://localhost:9200/_cluster/health ...
- IDEA 中 同一个微服务 按照多个端口启动
网上讲这个东西的很多,抄来抄去的,大部分类似,多数没讲明白为什么那么配置. 譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配区别 ...
- PCL 可视化
可视化(visualization)是利用计算机图形学和图像处理技术,将数据转换图像在屏幕上显示出来,并进行交互处理的的理论,方法和技术, pcl_visualization库建立了能够快速建立原型的 ...
- 【转】JMeter完成一个java请求的压测
JMeter完成java请求的压力测试详解以及问题总结 原文地址:http://www.cnblogs.com/zhaoxd07/p/4895224.html 作者:KK_Yolanda 这篇文 ...