MapReduce处理气象数据
1. 用Python编写WordCount程序并提交任务
|
程序 |
WordCount |
|
输入 |
一个包含大量单词的文本文件 |
|
输出 |
文件中每个单词及其出现次数(频数),并按照单词字母顺序排序,每个单词和其频数占一行,单词和频数之间有间隔 |
A编写map函数,reduce函数
map函数:
import sys
for line in sys.stdin:
line=line.strip()
words=line.split()
for word in words:
print ('%s\t%s' % (word,1))
reduce函数:
from operator import itemgetter
import sys
current_word=None
current_count=0
word=None
for line in sys.stdin:
line=line.strip()
word,count=line.split('\t',1)
try:
count=int(count)
except ValueError:
continue
if current_word==word:
current_count+=count
else:
if current_word:
print ('%s\t%s' % (current_word,current_count))
current_count=count
current_word=word
if current_word==word:
print ('%s\t%s' % (current_word,current_count))
B将其权限作出相应修改
sudo chmod 777 mapper.py sudo chmod 777 reducter.py
C本机上测试运行代码
echo "Hello World, Bye World" | ./mapper.py echo "Hello World, Bye World" | ./mapper.py | sort -k1,1 | ./reducter.py
D放到HDFS上运行
将之前爬取的文本文件上传到hdfs上
用Hadoop Streaming命令提交任务
查看运行结果

2. 用mapreduce 处理气象数据集
编写程序求每日最高最低气温,区间最高最低气温
气象数据集下载地址为:ftp://ftp.ncdc.noaa.gov/pub/data/noaa
按学号后三位下载不同年份月份的数据(例如201506110136号同学,就下载2013年以6开头的数据,看具体数据情况稍有变通)
A解压数据集,并保存在文本文件中
cd /usr/hadoop sodu mkdir qx cd /usr/hadoop/qx wget -D --accept-regex=REGEX -P data -r -c ftp://ftp.ncdc.noaa.gov/pub/data/noaa/2012/8* cd /usr/hadoop/qx/data/ftp.ncdc.noaa.gov/pub/data/noaa/2014 sudo zcat 1*.gz >qxdata.txt cd /usr/hadoop/qx
B对气象数据格式进行解析

C编写map函数,reduce函数
map函数:
import sys
for line in sys.stdin:
line=line.strip()
d=line[15:23]
t=line[87:92]
print'%s\t%s' % (d,t)
reduce函数:
from operator import itemgetter
import sys
c_w=None
c_count=0
word=None
for line in sys.stdin:
line=line.strip()
word,count=line.split('\t',1)
try:
count=int(count)
except ValueError:
continue
if c_w==word:
if c_count<count:
c_count=count
else:
if c_w:
print '%s\t%s' % (c_w,c_count)
c_w=word
c_count=count
if c_w==word:
print '%s\t%s' % (c_w,c_count)
D将其权限作出相应修改
E本机上测试运行代码
F放到HDFS上运行
1.将之前爬取的文本文件上传到hdfs上
2.用Hadoop Streaming命令提交任务
3.查看运行结果
MapReduce处理气象数据的更多相关文章
- Hadoop MapReduce编程 API入门系列之挖掘气象数据版本3(九)
不多说,直接上干货! 下面,是版本1. Hadoop MapReduce编程 API入门系列之挖掘气象数据版本1(一) 下面是版本2. Hadoop MapReduce编程 API入门系列之挖掘气象数 ...
- Hadoop MapReduce编程 API入门系列之挖掘气象数据版本2(十)
下面,是版本1. Hadoop MapReduce编程 API入门系列之挖掘气象数据版本1(一) 这篇博文,包括了,实际生产开发非常重要的,单元测试和调试代码.这里不多赘述,直接送上代码. MRUni ...
- Hadoop第5周练习—MapReduce计算气象温度等例子
:对云计算的看法 内容 :使用MapReduce求每年最低温度 内容 :求温度平均值能使用combiner吗? 内容 :使用Hadoop流求最高温度(awk脚本) 内容 :使用Hadoop流求最高温度 ...
- 用mapreduce 处理气象数据集
用mapreduce 处理气象数据集 编写程序求每日最高最低气温,区间最高最低气温 气象数据集下载地址为:ftp://ftp.ncdc.noaa.gov/pub/data/noaa 按学号后三位下载不 ...
- hadoop实验:求气象数据的最低温度
1.下载部分数据.由于实验就仅仅下载2003年的部分气象数据 2.通过zcat *gz > sample.txt命令解压重定向 [hadoop@Master test_data]$ zcat * ...
- Hadoop—MapReduce计算气象温度
Hadoop-MapReduce计算气象温度 1 运行环境说明 1.1 硬软件环境 主机操作系统:Mac OS 64 bit ,8G内存 虚拟软件:Parallers Desktop12 虚拟机操作系 ...
- 附录C 准备NCDC气象数据(加解释)
附录C 准备NCDC气象数据 这里首先简要介绍如何准备原始气象数据文件,以便我们能用Hadoop对它们进行分析.如果打算得到一份数据副本供Hadoop处理,可按照本书配套网站(网址为http://ww ...
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- pyhton读取json格式的气象数据
原文关于读取pm25.in气象数据的pyhton方法,以及浅析python json的应用 以pm25.in网站数据为例. 1.方法介绍 首先感谢pm25.in提供了优质的空气污染数据,为他们的辛勤劳 ...
随机推荐
- oracle a:=100 和 b=:c 区别
a:=100 是赋值语句 b=:c :c是一个整体,表示一个参数.
- DataSnap下的分包获取
DataSnap下通过TQuery—TDataSetProvider—TClientDataSet获取数据,如果是主从数据,则每条主表记录都会触发从表数据的获取. 这种获取和组织数据的方式有一个问题: ...
- route 工具
route工具 route工具主要用来查看或修改内核路由表 查看内核路由表 route [-nee] 参数说明: -n:不要使用协议或主机名称,直接使用 IP 或 port number:-ee:使用 ...
- LabVIEW编程实例:如何通过TCP协议进行数据通信
对于网络通信来说,LabVIEW平台本身提供了多种方法加以实现,如可以通过TCP协议.UDP协议.DataSocket技术.甚至远程面板通信技术等方式进行通信. 下面通过一个简单的例子,演示在LabV ...
- windows下使用gvim不支持python3.6问题解决
在用户目录下C:\Users\Administrator\新建vim配置文件夹vimfiles,然后该文件下建立一个文件vimrc vimrc内容: set pythonthreedll=python ...
- IDEA查看一个类的所有继承关系
通常一个.java文件对应一个java类. 鼠标右击一个类: 即可查看.按住alt键可放大. 另一快捷键:光标在类名上,ctrl+H
- Gym 100247I Meteor Flow(优先队列)
https://vjudge.net/problem/Gym-100247I 题意:有一艘飞船,现在有n颗流星坠落会攻击到飞船,每颗流星会在t时刻降落,对飞船造成d的伤害,飞船会有一个保护盾,初始值为 ...
- Pandas 基础(3) - 生成 Dataframe 的几种方式
这一节想总结一下 生成 Dataframe 的几种方式: CSV Excel python dictionary List of tuples List of dictionary 下面分别一一介绍具 ...
- header 格式
headers = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,* ...
- Springboot+JdbcTemplate +thymeleaf 页面 做迷你版的bug系统
https://www.cnblogs.com/qianjinyan/p/10065160.html 在我上一篇随笔中介绍了关于要做的系统的数据结构,连接如上 今天实现连接mssql server, ...