spark练习题
site1,user1,-- ::
site1,user2,-- ::
site1,user3,-- ::
site1,user3,-- ::
site2,user4,-- ::
site3,user5,-- ::
site3,user6,-- ::
site4,user7,-- ::
site4,user7,-- ::
现在要对最近7天的日志进行统计,统计结果格式如下,key(date(日期),hour(时间),site(网站))
value:(pv (访问次数),uv(独立访问人数,相同的访客id去重))
统计结果需要存至Hbase,使用spark写出伪代码
object tst {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("test").setMaster("local[3]")
val sc = new SparkContext(conf);
val curentDay = "2016-11-20"
val format = "yyyy-MM-dd"
val sdf = new SimpleDateFormat(format)
val rdd = sc.textFile("D:\\test\\spark\\笔试题\\siteuser.txt").map(t=>{
val fileds = t.split(",")
val date = fileds().split(" ")();
val hour = fileds().split(" ")().substring(,);
//site1,user1,2016-11-20 02
(fileds(),fileds(),date,hour)
}).filter(t=>{
TimeUtils.intervalDays(curentDay,t._3,sdf,sdf) <
}).cache()//如果不cache,在计算uvrdd时会重复计算之前的操作
val pvrdd = rdd.groupBy(t=>(t._3,t._4,t._1)).map(t=>(t._1,t._2.size))
println(pvrdd.collect().toBuffer)
val uvrdd = rdd.groupBy(t=>t).map(t=>((t._1._3,t._1._4,t._1._1),t._2.size)).reduceByKey(_+_);
print(uvrdd.collect().toBuffer)
sc.stop()
}
}
spark练习题的更多相关文章
- scala,spark练习题提高
1.求每家公司有哪些产品 val arr3 = List("Apache" -> "Spark", "Apache" -> &q ...
- Spark编程练习题
import org.apache.spark.sql.SparkSessionval spark = SparkSession.builder().appName("Spark SQL b ...
- Apache Spark 2.2.0 中文文档 - 概述 | ApacheCN
Spark 概述 Apache Spark 是一个快速的, 多用途的集群计算系统. 它提供了 Java, Scala, Python 和 R 的高级 API,以及一个支持通用的执行图计算的优化过的引擎 ...
- Kafka 练习题
一.选择题 Kafka服务器默认能接收的最大消息是多大? (单选) A A:1M B:10M C:100M D:没有大小限制,因为支持大数据 2.Kafka的特性(多选) ABCD A:高吞吐量.低 ...
- Spark推荐系统实践
推荐系统是根据用户的行为.兴趣等特征,将用户感兴趣的信息.产品等推荐给用户的系统,它的出现主要是为了解决信息过载和用户无明确需求的问题,根据划分标准的不同,又分很多种类别: 根据目标用户的不同,可划分 ...
- 基于Hive进行数仓建设的资源元数据信息统计:Spark篇
在数据仓库建设中,元数据管理是非常重要的环节之一.根据Kimball的数据仓库理论,可以将元数据分为这三类: 技术元数据,如表的存储结构结构.文件的路径 业务元数据,如血缘关系.业务的归属 过程元数据 ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- Spark RDD 核心总结
摘要: 1.RDD的五大属性 1.1 partitions(分区) 1.2 partitioner(分区方法) 1.3 dependencies(依赖关系) 1.4 compute(获取分区迭代列表) ...
- spark处理大规模语料库统计词汇
最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...
随机推荐
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
一.JSON解析与字符串化 JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 ...
- Linux内核系统体系概述
Linux 内核主要由 5 个模块构成,它们分别是: 进程调度模块 用来负责控制进程对 CPU 资源的使用.所采取的调度策略是各进程能够公平合理地访问 CPU,同时保证内核能及时地执行硬件操作. 内存 ...
- tableView的用法具体解释
1 tableView的类型 1.1 UITableViewStylePlain 没有区头 不显区头 向上滑动区头不会移动到屏幕外面 ' 1.2 UITableViewStyleGrou ...
- root用户Linux 环境变量的配置解决(-bash: jps: command not found)有关问题
可以写成:$JAVA_HOME/bin 3. source /root/.bash_profile 发现 jps 等命令运行正常了
- 利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1
这是一篇对之前 <利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 2>的补充.本篇博客将 ...
- 《TCP/IP详解卷1:协议》读书笔记
<TCP/IP详解卷1:协议>读书笔记 - QingLiXueShi - 博客园https://www.cnblogs.com/mengwang024/p/4425834.html < ...
- spring注解方式实现定时器
1.Spring的配置: <beans xmlns:task="http://www.springframework.org/schema/task" xsi:schemaL ...
- 全局获取 (Activity)Context,实现全局弹出 Dialog
为什么需要一个全局的 (Activity)Context 需求1:在进入 app 的时候,要求做版本检测,有新的版本的时候,弹出一个 AlertDialog,提示用户版本更新 需求2:从别的设备挤下来 ...
- 使用MySQL Proxy和MySQL Replication实现读写分离
MySQL Replication可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力.那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave ...
- Shader中ColorMask的使用
ColorMask可以对输出颜色进行Mask处理 使用方法和Cull这些标记差不多 SubShader { ColorMask R Cull Off .... 如果ColorMask填0就什么都不显示