使用hive查询ncdc天气数据
在hive中将ncdc天气数据导入,然后执行查询shell,可以让hive自动生成mapredjob,快速去的想要的数据结果。

1. 在hive中创建ncdc表,这个表用来存放ncdc的数据

create table ncdc (
year string,
month string,
data string,
time string,
air string,
a string,
b string,
c string,
d string,
e string,
f string,
g string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;

TERMINATED
BY '\t' 是说这个表子,使用tab键分割。
2. 处理原始的数据,因为原始的数据是这样的:
1901 01 01 06   -78 -9999 10200   270
  159     8 -9999 -9999
1901 01 01 13   -72 -9999 10200   290
   82     4 -9999 -9999
1901 01 01 20   -94 -9999 10200     0
    0     8 -9999 -9999
1901 01 02 06   -61 -9999 10183   180
   82     8 -9999 -9999
1901 01 02 13   -56 -9999 10176   180
   98     8 -9999 -9999
1901 01 02 20   -28 -9999 10175   180
   98     8 -9999 -9999
1901 01 03 06   -67 -9999 10170   200
   98     6 -9999 -9999
1901 01 03 13   -33 -9999 10174   230
  118     8 -9999 -9999
1901 01 03 20   -28 -9999 10174   230
  118     8 -9999 -9999
1901 01 04 06   -33 -9999 10231     0
    0     8 -9999 -9999
1901 01 04 13   -44 -9999 10226   230
   82     8 -9999 -9999

中间不是制表符,而是空格键,所以写了一个java程序,将文件夹中的 所有的数据统计,转换到一个文件中。


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.StringTokenizer;
public class removeAnno {
 static String ofile="summary";
 static BufferedWriter bw=null;
 public static void main(String[] args) throws Exception {
  bw = new BufferedWriter(new FileWriter(ofile));
  File file1 = new File("C:\\Users\\Administrator\\ncdc2");
  File[] listfile = file1.listFiles();
  for (int i=0;i<listfile.length;i++){
   rm("C:\\Users\\Administrator\\ncdc2\\"+listfile[i].getName());
   //System.out.println(listfile[i].getName());
  }
 }
static void rm(String filename) throws Exception{
 File file = new File(filename);
 BufferedReader br = new BufferedReader(new FileReader(file));
 String str=br.readLine();
 while(str!=null){
  //进行分割处理
  String tmp="";
  StringTokenizer st = new StringTokenizer(str);
  while (st.hasMoreTokens()){
   tmp=tmp+st.nextToken()+"\t";
  }
  bw.write(tmp+"\n");
  bw.flush();
  str=br.readLine();
 }
}
}


3. 导入数据到hive中

load data local inpath '/opt/software/ncdc/summary'
into table ncdc

4. 查询数据
可以查询每一年的平均气温,最高气温,最低气温等等,也可以使用分组函数,和MySQL操作差不多
select year,avg(air) from ncdc group by year;



hadoop-hive查询ncdc天气数据实例的更多相关文章

  1. hive查询ncdc天气数据

    使用hive查询ncdc天气数据 在hive中将ncdc天气数据导入,然后执行查询shell,可以让hive自动生成mapredjob,快速去的想要的数据结果. 1. 在hive中创建ncdc表,这个 ...

  2. NCDC 天气数据的预处理

    "Hadoop: The Definitive Guild" 这本书的例子都是使用NCDC 天气数据的,但由于书的出版和现在已经有一段时间了,NCDC现在提供的原始数据结构已经有了 ...

  3. Hadoop学习之NCDC天气数据获取

    期望目的 下载<Hadoop权威教程>里用到的NCDC天气数据,供后续在此数据基础上跑mapred程序. 操作过程 步骤一.编写简单的shell脚本,下载数据文件到本地文件系统 已知NCD ...

  4. JSONP跨域jQuery处理整理(附天气数据实例)

    写在前面 跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨 ...

  5. php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)

    php.mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳) //其中 video 是表名: //createtime 是字段: // //数据库time字段为时间戳 // //查询当天: ...

  6. PHP+Hadoop+Hive+Thrift+Mysql实现数据统计分析

    原址:http://www.cnblogs.com/wicub/p/6094045.html   安装 Hadoop安装: http://www.powerxing.com/install-hadoo ...

  7. Spark+Hadoop+Hive集群上数据操作记录

    [rc@vq18ptkh01 ~]$ hadoop fs -ls / drwxr-xr-x+ - jc_rc supergroup 0 2016-11-03 11:46 /dt [rc@vq18ptk ...

  8. Hadoop编程1:天气数据AWK & MapReduce

    本文介绍通过AWK和MapReduce两种方式统计出每年温度到最高气温直.awk速度虽然快,而且简短,但是数据量巨大到时候,就遇到力瓶颈,及时分布式执行awk脚本,也会出现机器死掉等问题,需要容错机制 ...

  9. 使用shell+awk完成Hive查询结果格式化输出

    好久不写,一方面是工作原因,有些东西没发直接发,另外的也是习惯给丢了,内因所致.今天是个好日子,走起! btw,实际上这种格式化输出应该不只限于某一种需求,差不多是通用的. 需求: --基本的:当前H ...

随机推荐

  1. BZOJ 1579 [Usaco2009 Feb]Revamping Trails 道路升级

    堆优化的dijkstra. 把一个点拆成k个. 日常空间要开炸一次.. //Twenty #include<cstdio> #include<cstring> #include ...

  2. 菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表ngx_chain_t[转]

    菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

  3. sql自定义日期函数,返回范围内日期和星期数表。

    Create function [dbo].[FUN_GenerateTime] ( @begin_date datetime, -- 起始时间 @end_date datetime -- 结束时间 ...

  4. centos7中给Elasticsearch5 安装bigdesk

    系统:centos7 elasticsearch:5.2.2 安装步骤 步骤 由于elasticsearch不再建议支持插件的安装方式.建议作为独立的程序来安装类似于bigdesk.head. 以前都 ...

  5. StringBuffer清空

    转载自:http://blog.sina.com.cn/s/blog_56fd58ab0100qfcz.html 在开发程序的时候,经常使用StringBuffer来进行字符串的拼接.如果在循环中来反 ...

  6. Maven入门指南

    Maven入门指南 本指南旨在第一次为使用Maven的人员提供参考,但也打算作为一本包含公共用例的独立参考和解决方案的工具书.对于新用户,建议您按顺序浏览该材料.对于更熟悉Maven的用户,本指南致力 ...

  7. Android笔记之让Debug和Release模式使用相同的签名

    方法如下图 完整的build.gradle如下 apply plugin: 'com.android.application' android { compileSdkVersion 29 build ...

  8. dubbo入门学习(五)-----dubbo的高可用

    zookeeper宕机与dubbo直连 现象 zookeeper注册中心宕机,还可以消费dubbo暴露的服务. 原因 健壮性 l 监控中心宕掉不影响使用,只是丢失部分采样数据 l 数据库宕掉后,注册中 ...

  9. 转:Linux 2.4.x内核软中断机制

    源地址:http://www.ibm.com/developerworks/cn/linux/kernel/interrupt/ Linux 2.4.x内核软中断机制 杨沙洲 (pubb@163.ne ...

  10. 【agc013d】AtCoder Grand Contest 013 D - Piling Up

    题意 盒子里有n块砖,每块的颜色可能为蓝色或红色. 执行m次三步操作: 1.从盒子里随便拿走一块砖 2.放入一块蓝砖和红砖到盒子里 3.从盒子里随便拿走一块砖 给定n,m 问拿出来的砖,可能有多少种不 ...