spark SQL学习(综合案例-日志分析)
日志分析
scala> import org.apache.spark.sql.types._
scala> import org.apache.spark.sql.Rowscala> val logRDD = sc.textFile("hdfs://master:9000/student/2016113012/data/log.txt").map(_.split("#"))
logRDD: org.apache.spark.rdd.RDD[Array[String]] = MapPartitionsRDD[2] at map at <console>:21val schema = StructType(Array(StructField("ipAddress",StringType,true),StructField("clientIndentd",StringType,true),StructField("userId",StringType,true),StructField("dateTime",StringType,true),StructField("protocal",StringType,true),StructField("responseCode",StringType,true),StructField("contentSize",IntegerType,true)))val rowRDD = logRDD.map(p => Row(p(0),p(1),p(2),p(3),p(4),p(5),p(6).toInt))
val logDF = sqlContext.createDataFrame(rowRDD,schema)
logDF.registerTempTable("logs")//统计访问文件大小的平均值,最大值,最小值
scala> sqlContext.sql("select avg(contentSize),min(contentSize),max(contentSize) from logs").show()
17/03/07 17:04:20 INFO ParseDriver: Parsing command: select avg(contentSize),min(contentSize),max(contentSize) from logs
17/03/07 17:04:20 INFO ParseDriver: Parse Completed
17/03/07 17:04:21 INFO FileInputFormat: Total input paths to process : 1
17/03/07 17:04:22 INFO deprecation: mapred.tip.id is deprecated. Instead, use mapreduce.task.id
17/03/07 17:04:22 INFO deprecation: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
17/03/07 17:04:22 INFO deprecation: mapred.task.is.map is deprecated. Instead, use mapreduce.task.ismap
17/03/07 17:04:22 INFO deprecation: mapred.task.partition is deprecated. Instead, use mapreduce.task.partition
17/03/07 17:04:22 INFO deprecation: mapred.job.id is deprecated. Instead, use mapreduce.job.id
+------+----+----+
| _c0| _c1| _c2|
+------+----+----+
|3506.0|2000|5554|
+------+----+----+//统计响应代码的数量
scala> sqlContext.sql("select responseCode,count(*) from logs group by responseCode").show()
17/03/07 17:52:26 INFO ParseDriver: Parsing command: select responseCode,count(*) from logs group by responseCode
17/03/07 17:52:26 INFO ParseDriver: Parse Completed
+------------+---+
|responseCode|_c1|
+------------+---+
| 304| 1|
| 200| 2|
+------------+---+//统计大于1次的ip地址
scala> sqlContext.sql("select ipAddress,count(1) as total from logs group by ipAddress having total > 1").show()
17/03/07 17:55:20 INFO ParseDriver: Parsing command: select ipAddress,count(1) as total from logs group by ipAddress having total > 1
17/03/07 17:55:20 INFO ParseDriver: Parse Completed
+----------+-----+
| ipAddress|total|
+----------+-----+
|10.0.0.153| 3|
+----------+-----+
问题:如何将p(4)里面的继续切分
转载于:https://www.cnblogs.com/wujiadong2014/p/6516658.html
spark SQL学习(综合案例-日志分析)相关推荐
- Spark学习笔记(7)---Spark SQL学习笔记
Spark SQL学习笔记 Spark SQL学习笔记设计到很多代码操作,所以就放在github, https://github.com/yangtong123/RoadOfStudySpark/bl ...
- 左外连接Left-Outer-Join的基于SQL,MapReduce,sparkRDD,sparkDataFrame以及spark SQL的实现案例及对比
提示:阅读本文需要部分java,scala,spark,sql的基础. 文章目录 前言 一.什么是join操作? 二.有那些常见的join的类型? 三.使用SQL实现左外连接: 1.数据准备 2.实现 ...
- Oracle数据库——PL/SQL程序设计综合案例
一.程序设计方法 1.瀑布模型 2.SQL 语句 3.变量: 初始值是多少 最终值如何得到 二.综合案例 1.综合案例1 统计每年入职的员工人数 /*SQL语句select to_char(hired ...
- 【Elastic Stack学习】ELK日志分析平台(一)ELK简介、ElasticSearch集群
* ELK简介: ELK是Elasticsearch . Logstash.Kibana三个开源软件的缩写.ELK Stack 5.0版本之后新增Beats工具,因此,ELK Stack也改名为Ela ...
- spark SQL学习(认识spark SQL)
spark SQL初步认识 spark SQL是spark的一个模块,主要用于进行结构化数据的处理.它提供的最核心的编程抽象就是DataFrame. DataFrame:它可以根据很多源进行构建,包括 ...
- JVM学习笔记-GC日志分析(对象优先在Eden区分配)
前言 在进行GC日志分析前,先了解一下JVM虚拟机运行时数据区的主要划分: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域 有各自的用途,以及创建和销毁 ...
- spark代码连接hive_spark SQL学习(spark连接hive)
spark 读取hive中的数据 scala> import org.apache.spark.sql.hive.HiveContext import org.apache.spark.sql. ...
- spark sql 本地调试_干货 | 如何成为大数据Spark高手
Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式,是罕见的全能选手. ...
- MOOC网站访问日志分析
阿里云开放实验室 https://edu.aliyun.com/lab/courses 选择一个日志分析项目为例: 实验详情: 实验概述:网站访问日志是用户在访问网站服务器时产生的日志,它包含了各种原 ...
最新文章
- JAVA中复制数组的方法
- Android--制作开场动画/MediaPlayer.OnCompletionListener
- leetcode算法题--环形链表 II★
- 一致性哈希算法的基本原理
- 【渝粤题库】国家开放大学2021春2108刑法学(2)答案
- 第一章:OpenCV入门
- React开发(215):React中的Fragments的动机
- Linux中fdisk对应的c函数,linux下fdisk命令实战案例之详解
- 交换机的质量害死人呀!
- c语言定义字符数组数码管,数组数码管
- 《Windows编程循序渐进》——对话框应用程序
- 使用jprobe建设镜面层叠的原则和见解
- Linux系统的镜像文件下载
- 13行列式02---余子式与代数余子式、行列式按行(列)展开法则、行列式计算、范德蒙行列式
- 基于深度学习的图像文字识别技术
- 驾驶机动车在高速公路上倒车、逆行、穿越中央分隔带掉头的一次记6分。
- 5M的开源桌面整理软件,麻雀虽小,功能十分强大
- docker镜像(第二天)
- iphone功率测试软件,iPhone原装5W充电头充电功率测试
- python装饰器带参数函数二阶导数公式_SICP Python 描述 1.6 高阶函数