Hive 股票数据SQL分析[Hive 案例]

股票数据

股票数据获取

1.  网址: http://money.163.com/stock/

2.  输入搜索关键字


3.  资金流向


4.  历史交易数据


5.  下载数据

数据预处理

1.  数据格式

2.  删除首行并独立保存,Hive 建表时参考作为列名

3.  处理数据编码,另存为UTF-8避免Hive加载中文乱码

4.  处理后数据格式如下

数据上传

上传HDFS

1.  HDFS中新建存储目录[/data已经存在,如不存在先创建data目录]

hdfs dfs -mkdir  /data/stock

2.  从本地上传[本地存储目录为/app/tvcdata/stock/]

hdfs dfs -put /app/tvcdata/stock/   /data

3.  数据确认

hdfs dfs -ls /data/stock

Hive环境

服务启动

1.  启动HiveServer2

nohup ./hive--service hiveserver2 &

2.  验证服务

ps aux |grep hive

http://host106:10002/hiveserver2.jsp

连接beeline shell

1.  连接到default数据库[default为默认数据库]

./beeline -u jdbc:hive2://localhost:10000/default -nroot -p root

2.  创建数据库 mystock

createdatabase mystock;

3.  选中创建的数据库

use mystock;

4.  查看当前选中的数据库

select current_database();

创建Hive表

1.       创建表[这里创建为外部表,使用’ org.apache.hadoop.hive.serde2.OpenCSVSerde’编码解码器]

createexternal table if not exists stock(cdate date,code string,namestring,closeprice float,maxprice float,minprice float,openprice float,prepricefloat,updownlimit float,updownrange float,turnoverrate float,volume float,turnover float,totalvalue float, circulationvalue float) comment '股票信息表' row format  serde'org.apache.hadoop.hive.serde2.OpenCSVSerde' stored as textfile location '/data/stock/';

2.       查看表信息

describe  stock;

基本操作

基本查询

1.        分页

select code,name,closeprice from stock limit 0,5;

2.        条件查询

select closepricefrom stock where code='\'300212' and cdate='2017-10-20';

3.        排序

selectcode,name,closeprice  from stock order bycloseprice desc limit 0,10;

上述查询触发了MR操作


4.        函数

selectmax(closeprice) as maxcloseprice,max(totalvalue) as maxtotalvalue from stock;

5.        聚合

select code,count(1)as totalrecord from stock group by code;

添加索引

         股票查询以日期作为索引列比较合适

 

1.        为cdate[日期]创建索引

create index index_stock_cdata on table stock(cdate) as'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERREDREBUILD;

2.        查看索引

show index on  stock;

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值