打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用
2019独角兽企业重金招聘Python工程师标准>>>
1.下载spark和运行
wget http://apache.fayea.com/apache-mirror/spark/spark-1.0.0/spark-1.0.0-bin-hadoop2.tgz
我这里下载的是1.0.0版,由于我们只是测试spark的用法所以不需要配置spark集群,只需把下好的文件解压,进入bin/文件夹。
spark支持scala,java和python。
scala和java输入命令:./spark-shell python 输入命令 ./pyspark 进入控制台,我们以python为例:
很简单无需任何配置,好的开始是成功的一半,我们继续。
2.简单应用
读取文本文件,我们还是以之前的日志文件为例:
>>>file = sc.textFile("/home/hadoop/20130207.txt")
PS:python是大小写敏感的;路径要给全,否则默认是你运行命令时的那个路径;python2.7.X版本对编码支持一直是个问题,请尽量统一源文件的编码,如"utf-8".
显示总行数:
>>> file.count()
265063
显示第一行内容:
>>>file.first()
得到所有被ie8访问的url的计数:
>>>file.filter(lambda line : "MSIE 8.0" in line).count()
98670
Ps: lambda 是匿名函数的写法;filter默认输入的是整行,上述代码的意思遍历每一行并计算出包含“MSIE 8.0”字符串的行数和。
得到拥有最多字段数的那行的字段个数:
>>> file.map(lambda line : len(line.split("|"))).reduce(lambda a,b: a if a>b else b )
Ps:map(lambda line : len(line.split("|")))是把每行分割成集合并返回集合的成员数;
python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
统计每个字符串(字段内容)出现的次数:
file.flatMap(lambda line :line.split("|")).map(lambda word:(word,1)).reduceByKey(lambda a,b:a+b).collect()
结果显示的数据太多了,精神崩溃~~,换个方式~
统计每个字符串(字段内容)出现的次数,并显示出现最多个10个字符串:
>>>file.flatMap(lambda line :line.split("|")).map(lambda word:(word,1)).reduceByKey(lambda a,b:a+b).map(lambda (k,v):(v,k)).sortByKey().top(10)
sortByKey是根据键值排序,top是提取前X个记录,跟hive中的limit 类似。由于spark中没有sortByValue方法,所以在排序前先把key和value互换。
转载于:https://my.oschina.net/u/1589995/blog/289209
打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用相关推荐
- 基于JAVA旅游网站设计计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA旅游网站设计计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA旅游网站设计计算机毕业设计源码+数据库+lw文档+系统+部署 项目架构:B/S架构 开发语言:Java语言 开发软 ...
- 基于Java音乐网站的设计与实现
随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛.因此,建立一个基于Java音乐网站的设计与实现,会使基于Java音乐网站的设计与实现的管理工作系统化.规范化,也会提高平 ...
- 《大数据基础——基于Hadoop与Spark》课后习题——第一章部分答案
仅用于我个人的学习.书籍为人民邮电出版社的<大数据技术基础--基于Hadoop与Spark>.课后习题选择是我个人认为有用的.记录下来是为了督促我学习:) 共好 1.请指出以下术语的基本含 ...
- 基于JAVA成人自考信息与推荐系统录屏计算机毕业设计源码+系统+lw文档+部署
基于JAVA成人自考信息与推荐系统录屏计算机毕业设计源码+系统+lw文档+部署 基于JAVA成人自考信息与推荐系统录屏计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...
- 基于hadoop的小红书电商网站用户行为分析系统毕业论文+任务书+开题报告+答辩PPT+知网查重报告+项目源码及Mysql数据
基于hadoop的小红书电商网站用户行为分析系统毕业论文+任务书+开题报告+答辩PPT+知网查重报告+项目源码及Mysql数据库-99源码网,程序代做,代写程序代码,代写编程,代写Java编程,代写p ...
- 大数据技术之Hadoop(十一)——网站流量日志数据分析系统
目录 素材: 一.模块开发--数据预处理 1.分析预处理的数据 2.实现数据的预处理 (1)创建Maven项目,添加相关依赖 (2)创建JavaBean对象,封装日志记录 (3)创建MapReduce ...
- 【Hadoop】基于Hadoop/Hbase/Hive的小型离线服务器日志分析应用
##1.项目简介 本项目主要设计一个基于Hadoop的日志分析系统.其中的日志数据主要来自于某系统开发测试期间的服务器访问日志数据(Tomcat),通过对这些日志数据利用正则表达式等技术手段进行处理, ...
- 基于hadoop的电商销售预测分析系统HDFS+MapReduce+springboot或springcloud+Echarts
基于hadoop的电商销售预测分析系统 使用分布式文件存储系统HDFS+mapreduce+springboot和springcloud+Echarts实现的简单的电商销售数据预测分析系统. 主要通过 ...
- 基于Hadoop开发的大数据实战项目——电商日志分享系统
项目介绍 大数据电商日志平台项目以某电商网站真实的业务数据架构为基础,将数据从收集到使用通过前端应用程序,后端程序,数据分析,平台部署等多方位的闭环的业务实现.形成了一套符合教学体系的电商日志分析项目 ...
- python大数据处理mapreduce_使用python构建基于hadoop的mapreduce日志分析平台
流量比较大的日志要是直接写入Hadoop对Namenode负载过大,所以入库前合并,可以把各个节点的日志凑并成一个文件写入HDFS. 根据情况定期合成,写入到hdfs里面. 咱们看看日志的大小,200 ...
最新文章
- C语言编程中的“堆”和“栈”七大不同之处
- 解决ECSHOP后台订单里面点击编辑配送方式时出现的警告问题
- 边缘计算、区块链、5G,哪个能走的更远
- js获取屏幕宽高和下拉加载更多
- 计算机进入休眠状态后,Win7电脑进入休眠状态后又自动重启该怎么处理
- 【小程序】【Tips】跨页面全局变量的正确方法 - globalData
- HashMap源码分析-jdk1.6和jdk1.8的区别
- 20210916:Verilog的整数类型易错点
- 《Queue,Stack,SortedList》---集合
- 学嵌入式必须掌握的经验
- python定义函数及调用函数
- pmos低电平驱动_MOS管驱动电路详解
- 3月4日 与柳传志面对面(谁是这个时代的思想家)
- 《深度学习》/《Deep Learning》——深度学习圣经的读书笔记
- 内网穿透工具Ngrok
- 【CVPR 2022】Deblur-NeRF: Neural Radiance Fields from Blurry Images
- 华为搅局ERP,北用友南金蝶格局改变?用户:NO,我们另有选择
- Lumerical官方案例、FDTD时域有限差分法仿真学习(十四)——超透镜(Metalens)
- 扫地机器人能过凸起地面吗_适用于不平整地面的智能扫地机器人的制作方法
- OpenGL3.3透视矩阵原理计算