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提供了优质的空气污染数据,为他们的辛勤劳 ...
随机推荐
- aop的使用
最近考虑需要记录客户对项目的操作日志. 如果在每一个客户都有可能操作的类增加日志对象,改动量太大,同时如果有新的功能增加,又要在新的功能上增加日志操作. 因此考虑后决定采用spring的aop功能. ...
- CentOS6.8下安装mysql
转自https://blog.csdn.net/jeffleo/article/details/53559712?utm_source=itdadao&utm_medium=referral ...
- Java——List:list.add(index, element)和list.set(index, element)的区别
add(index, element) 含义:在集合索引为index的位置上增加一个元素element,集合list改变后list.size()会增加1 用法 testList.add(index, ...
- javaEE体系结构【转载】
转载自: http://blog.csdn.net/chjskarl/article/details/72629014?locationNum=3&fps=1 JavaEE是一套使用Java进 ...
- SpringBoot Mybatis 分页插件PageHelper
添加maven配置: <!-- 分布插件 --> <dependency> <groupId>com.github.pagehelper</groupId&g ...
- 5、iptables之nat
iptables: 显式扩展.网络防火墙 显式扩展:multiport, iprange, string, time, connlimit, limit, state state:无关是哪种协议 /p ...
- 微信小游戏开发之JS面向对象
//游戏开发之面向对象 //在js的开发模式中有两种模式:函数式+面向对象 //1.es5 // 拓展一:函数的申明和表达式之间的区别 // 函数的申明: // function funA(){ // ...
- 百度“搜索设置”之基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别
还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下: 继续解释这两种的区别: 1.其实基于定 ...
- 关于System.in如何执行的问题
import java.io.IOException; public class Test1 { public static void main(String[] args) throws IOExc ...
- rostopic demo
发布者 #!/usr/bin/env python2. # -*- coding: utf- -*- import rospy from hdw_driver.msg import update_fi ...