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处理气象数据的更多相关文章

  1. Hadoop MapReduce编程 API入门系列之挖掘气象数据版本3(九)

    不多说,直接上干货! 下面,是版本1. Hadoop MapReduce编程 API入门系列之挖掘气象数据版本1(一) 下面是版本2. Hadoop MapReduce编程 API入门系列之挖掘气象数 ...

  2. Hadoop MapReduce编程 API入门系列之挖掘气象数据版本2(十)

    下面,是版本1. Hadoop MapReduce编程 API入门系列之挖掘气象数据版本1(一) 这篇博文,包括了,实际生产开发非常重要的,单元测试和调试代码.这里不多赘述,直接送上代码. MRUni ...

  3. Hadoop第5周练习—MapReduce计算气象温度等例子

    :对云计算的看法 内容 :使用MapReduce求每年最低温度 内容 :求温度平均值能使用combiner吗? 内容 :使用Hadoop流求最高温度(awk脚本) 内容 :使用Hadoop流求最高温度 ...

  4. 用mapreduce 处理气象数据集

    用mapreduce 处理气象数据集 编写程序求每日最高最低气温,区间最高最低气温 气象数据集下载地址为:ftp://ftp.ncdc.noaa.gov/pub/data/noaa 按学号后三位下载不 ...

  5. hadoop实验:求气象数据的最低温度

    1.下载部分数据.由于实验就仅仅下载2003年的部分气象数据 2.通过zcat *gz > sample.txt命令解压重定向 [hadoop@Master test_data]$ zcat * ...

  6. Hadoop—MapReduce计算气象温度

    Hadoop-MapReduce计算气象温度 1 运行环境说明 1.1 硬软件环境 主机操作系统:Mac OS 64 bit ,8G内存 虚拟软件:Parallers Desktop12 虚拟机操作系 ...

  7. 附录C 准备NCDC气象数据(加解释)

    附录C 准备NCDC气象数据 这里首先简要介绍如何准备原始气象数据文件,以便我们能用Hadoop对它们进行分析.如果打算得到一份数据副本供Hadoop处理,可按照本书配套网站(网址为http://ww ...

  8. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  9. pyhton读取json格式的气象数据

    原文关于读取pm25.in气象数据的pyhton方法,以及浅析python json的应用 以pm25.in网站数据为例. 1.方法介绍 首先感谢pm25.in提供了优质的空气污染数据,为他们的辛勤劳 ...

随机推荐

  1. 【python041--构造方法:构造和析造】

    一.魔法方法 1.魔法方法总是被双下划线包围,例如:__init__ 2.为什么在类实例化的时候,有时候需要构造__init__,有时候不需要呢 举例说明: #定义一个矩形的类,需要长和宽两个参数,计 ...

  2. ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(2)

    2.连接相关 名称 类型 说明 Connection 指向一个数据库连接对象 Disconnected 设置为True将在数据库关闭后继续保持数据集的开启状态. 3. 数据获取 名称 类型 说明 Fe ...

  3. shell中使用echo输出时如何指定颜色

    答: 请看下图:

  4. Docker中的Cgroup Driver:Cgroupfs 与 Systemd

    在安装kubernetes的过程中,会出现 failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgrou ...

  5. 倍数|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)

    思路:从l枚举到r肯定超时,这时我们要转变思路!题目让我们求一个区间内的d的倍数,只需要求出r/d - l/d就是区间内d倍数的个数. 代码: #include <iostream> us ...

  6. 【做题】TCSRM591 Div1 500 PyramidSequences——数形结合&思维

    题意:定义高度为\(x\)的金字塔数列为周期为\(2x-2\)的无限数列.它的每一个周期都是形如\(1,2,...,x-1,x,x-1,...,2\)的形式.记高度为\(x\)的金字塔数列第\(i\) ...

  7. 17秋 SDN课程 第四次上机作业

    1.建立以下拓扑,并连接上ODL控制器. 2.利用ODL下发流表,使得h3在10s内ping不通h1,10s后恢复. 3.借助Postman通过ODL的北向接口下发流表,再利用ODL北向接口查看已下发 ...

  8. NodeJS 获取网页源代码

    获取网页源代码 node 获取网页源代码 var http = require('http'); var url = "http://www.baidu.com/"; // 参数u ...

  9. There is no Action mapped for namespace / and action name .解答

    做struts2登陆检验的时候遇到了一个问题: 输入http://localhost/login_validation/的目的是想显示 文件夹下的文件列表,无奈,使用struts框架,web.xml设 ...

  10. 返回Json格式结果

    static string ReturnData(int resultCode, string resultMessage = "", string resultData = &q ...