mapreduce课上实验

今天我们课上做了一个关于数据清洗的实验,具体实验内容如下:

1.数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中;

2.数据处理:

·统计最受欢迎的视频/文章的Top10访问次数 (video/article)

·按照地市统计最受欢迎的Top10课程 (ip)

·按照流量统计最受欢迎的Top10课程 (traffic)

3.数据可视化:将统计结果倒入MySql数据库中,通过图形化展示的方式展现出来。

本次主要是因为自己尚未掌握Hive的操作,之后得以请教本宿舍的大佬将hive 配置完成。

代码如下:

 1     public static class Map extends Mapper<Object , Text , Text,Text >{
 2         private static Text ip=new Text();
 3 //        private static Text date=new Text();
 4 //        private static Text type=new Text();
 5 //        private static Text id=new Text();
 6         private static Text traffic=new Text();
 7         public void map(Object key,Text value,Context context) throws IOException, InterruptedException{
 8             String line=value.toString();
 9             String arr[]=line.split(",");
10             traffic.set(arr[0]);
11             String str[]=arr[1].split("[:]|[/]|[+]");
12             String s=str[2]+"-"+"11"+"-"+str[0]+" "+str[3]+":"+str[4]+":"+str[5];
13             ip.set(s+","+str[0]+","+arr[3]+","+arr[4]+","+arr[5]);
14             context.write(traffic,ip);
15         }
16     }
17     public static class Reduce extends Reducer< IntWritable, Text, Text, Text>{
18         public void reduce(Text key,Iterable<Text> values,Context context) throws IOException, InterruptedException{
19             for(Text val:values){
20                 context.write(key,val);
21             }
22         }
23     } 

最后得到以下输出结果:

原文地址:https://www.cnblogs.com/990906lhc/p/11854048.html

时间: 2024-10-07 17:58:37

mapreduce课上实验的相关文章

课上实验-小软件破解

二进制代码分析报告(好水的一个破解) 第一步,language.exe检测出程序加壳,经过Aspack加壳. 第二步,AspackDie.exe脱壳 第三步,language.exe检测脱壳后的程序,发现该程序是使用Delphi编写的. 第四步,将脱壳程序拉入IDA,通过ViewsàStrings查看字符串信息,发现“注册码错误”字符串,定位到代码处.如下图: 在0x004ACAD7处有两个分支,经观察0x004ACADD的分支为注册成功的分支,0x004ACC3D的分支为注册失败的分支.因此,

# 20155337 2017-2018 1 课上测试、课下作业、实验

20155337 2017-2018 1 课上测试.课下作业.实验 第一周 学习总结 第二周 课堂实践 第三周 学习总结 第四周 学习总结+myod 第五周 学习总结 课堂实践 第六周 学习总结 实验一 第七周 学习总结 实验二 第八周 加分项目pwd 第九周 学习总结 第十周 实验三 第十一周 学习总结

课上作业。

<C语言程序设计>实验报告 学 号 160809229 姓 名 马寅武 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 机 器 号 时 间 2016年 10 月 13 日 6 周 周四 1.2 节 截至日期 2016.10.13 11:50 实验任务清单 1.实验3-1 分别使用while循环.do while循环.for循环求(即求1+2+3+ ……+100) 2.实验3-2分别使用while循环.do while循环.for循环

第八周课上内容补做

第八周课上内容补做 1. 通过输入gcc -S -o main.s main.c 将下面c程序"week04学号.c"编译成汇编代码 int g(int x){ return x+3; } int f(int x){ int i = 学号后两位: return g(x)+i; } int main(void){ return f(8)+1; } 删除汇编代码中 . 开头的代码,提交f 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码. 结合C函数调用机制及栈帧指针中的实例,

2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试

2018-2019-1 20165318<信息安全系统设计基础>第八周课上测试 测试-1-ch03 任务详情 通过输入gcc -S -o main.s main.c,将下面c程序"week04学号.c"编译成汇编代码 int g(int x) { return x+3; } int f(int x) { int i = 学号后两位: return g(x)+i; } int main(void) { return f(8)+1; } 删除汇编代码中 . 开头的代码,提交f函

智慧解析第03课上:战国故事 相如出世

智慧解析第03课上:战国故事 相如出世,布布扣,bubuko.com

课上练习

package 课上作业; import java.util.InputMismatchException; import java.util.Scanner; public class Test { public static void main(String[] args) { for(int m=0;;) { int judge=0; Scanner in=new Scanner(System.in); int n; System.out.println("请输入帖子的个数:")

Construct Binary Tree from Inorder and Postorder Traversal (算法课上的题)

Construct Binary Tree from Inorder and Postorder Traversal 这道题之前算法课上好像遇到过,思路也很简单的. 思路:后序序列的最后一个元素就是树根,然后在中序序列中找到这个元素(由于题目保证没有相同的元素,因此可以唯一找到),中序序列中这个元素的左边就是左子树的中序,右边就是右子树的中序,然后根据刚才中序序列中左右子树的元素个数可以在后序序列中找到左右子树的后序序列,然后递归的求解即可.(在去除了根节点之后,中序遍历和后序遍历的前N个树都是

课上1.0

课上:  课上比较差脑子一片混乱,定义了一个数组接收hello word,本来想用ASCII码值变化来实现大小写改变,结果做到一半发现程序运行有问题不能直接用, 然后就想用指针,结果没什么头绪就下课了 课下: 百度问题,百度报错意思 #include <stdio.h> #include <stdlib.h> int main(){ char str[] = "hello word"//定义一个数组放进字符串 printf("%s\n",st