Hive案例之股票分析

需求

​ 中国的股票市场日益成熟。最近受美国股票波动冲击,股票也波动比较厉害。请按如下交易明细进行分析。

​ 如下数据保存在gupiao.txt中:

序号 股票号 股票名称 行业 交易平台 交易额(万)手
1,600462,九有股份,5G通讯,同花顺,10160
2,600695,绿庭投资,5G通讯,同花顺,10130
3,2575,群兴玩具,5G通讯,同花顺,10110
4,300392,腾信股份,5G通讯,同花顺,10080
5,300464,星徽精密,医疗,同花顺,10080
6,2687,乔治白,医疗,同花顺,10070
7,300162,雷曼股份,医疗,同花顺,10070
8,603323,吴江银行,医疗,同花顺,10070
9,600622,光大嘉宝,医疗,同花顺,10060
10,300281,金明精机,环保,同花顺,10050
11,2504,弘高创意,环保,同花顺,10040
12,2807,江阴银行,环保,同花顺,10040
13,2857,三晖电气,环保,同花顺,10040
14,600908,无锡银行,环保,同花顺,10040
15,2654,万润科技,高端制造,同花顺,10030
16,600311,荣华实业,高端制造,同花顺,10030
17,2856,美芝股份,高端制造,同花顺,10020
18,300444,双杰电气,国防军工,同花顺,10020
19,600746,江苏索普,国防军工,同花顺,10020
20,300384,三联虹普,国防军工,同花顺,10010
21,600462,九有股份,5G通讯,大智慧,10010
22,600695,绿庭投资,5G通讯,大智慧,10000
23,2575,群兴玩具,5G通讯,大智慧,10000
24,300392,腾信股份,5G通讯,大智慧,10000
25,300464,星徽精密,医疗,大智慧,10000
26,2687,乔治白,医疗,大智慧,9990
27,300162,雷曼股份,医疗,大智慧,9990
28,603323,吴江银行,医疗,大智慧,9980
29,600622,光大嘉宝,医疗,大智慧,9980
30,300281,金明精机,环保,大智慧,9970
31,2504,弘高创意,环保,通信达,9960
32,2807,江阴银行,环保,通信达,9950
33,2857,三晖电气,环保,通信达,9940
34,600908,无锡银行,环保,通信达,9940
35,2654,万润科技,高端制造,通信达,9940
36,600311,荣华实业,高端制造,通信达,9940
37,2856,美芝股份,高端制造,通信达,9940
38,300444,双杰电气,国防军工,通信达,9850
39,600746,江苏索普,国防军工,通信达,9840
40,300384,三联虹普,国防军工,通信达,8280
41,600462,九有股份,5G通讯,通信达,8260
42,600695,绿庭投资,5G通讯,通信达,8210
43,2575,群兴玩具,5G通讯,通信达,8120
44,300392,腾信股份,5G通讯,通信达,8110
45,300464,星徽精密,医疗,通信达,7850
46,2687,乔治白,医疗,通信达,7720
47,300162,雷曼股份,医疗,通信达,7660
48,603323,吴江银行,医疗,钱龙,8660
49,600622,光大嘉宝,医疗,钱龙,9660
50,300281,金明精机,环保,钱龙,10660
51,2504,弘高创意,环保,钱龙,11660
52,2807,江阴银行,环保,钱龙,12660
53,2857,三晖电气,环保,钱龙,13660
54,600908,无锡银行,环保,钱龙,14660
55,2654,万润科技,高端制造,钱龙,15660
56,600311,荣华实业,高端制造,钱龙,16660
57,2856,美芝股份,高端制造,钱龙,17660
58,300444,双杰电气,国防军工,钱龙,18660
59,600746,江苏索普,国防军工,钱龙,19660
60,300384,三联虹普,国防军工,钱龙,20660
  • 创建Hive分区表表名为sockinfo,按照行业进行分区,分区字段名自定义。
  • 将以上信息导入到Hive表中
  • 按交易平台统计交易额前3的记录
  • 创建Hive自定义函数,功能是根据平台区分平台性质同花顺,钱龙 为国营,其余为私营。
  • 查询5G通讯分区对应的所有数据,信息包括:股票号 股票名称 行业 交易平台 ,平台性质。

实现

  • 创建Hive分区表表名为sockinfo,按照行业进行分区,分区字段名自定义。

    create table sockinfo_tmp(id int,stockno string,stockname string,trade string,platform string,volume int)
    row format delimited fields terminated by ','
    stored as textfile tblproperties('skip.header.line.count'='1');
    
    load data local inpath '/home/test/hive-2.3.7/data/gupiao.txt' into table sockinfo_tmp;
    
    create table sockinfo(id int,stockno string,stockname string,trade string,platform string,volume int)
    partitioned by (trade_p string)
    row format delimited fields terminated by ','
    stored as textfile;
    
  • 将以上信息导入到Hive表中

    • 由于按行业分区,行业字段是中文,需考虑mysql中hive数据库存储中文分区字段的问题。

      # 查看数据库编码是否都是utf-8
      show variables like '%char%';
      # 如果是character_set_database=latin1,character_set_server=latin1,需关闭mysql,配置my.cnf配置文件(/etc/my.cnf或/usr/my.cnf)
      [mysqld]
      character-set-server=utf8
      # 重启mysql
      service mysql restart
      
      #修改hive database编码
      alter database hive default character set utf8;
      #修改table编码
      alter table PARTITIONS default character set utf8;
      alter table PARTITION_KEY_VALS default character set utf8;
      alter table SDS default character set utf8;
      #修改字段编码
      alter table PARTITIONS modify column PART_name varchar(190) character set utf8;
      alter table PARTITION_KEY_VALS modify column PART_KEY_VAL varchar(256) character set utf8;
      alter table SDS modify column LOCATION varchar(4000) character set utf8;
      
    • 导入数据

      insert into sockinfo partition(trade_p) select *,
      trade as trade_p from sockinfo_tmp;
      
  • 按交易平台统计交易额前3的记录

    select * from (select *,row_number() over(partition by platform order by volume desc) rank from sockinfo)t where t.rank<=3;
    
  • 创建Hive自定义函数,功能是根据平台区分平台性质同花顺,钱龙 为国营,其余为私营。

    • 导入依赖包

      <dependencies><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>2.3.7</version></dependency>
      </dependencies>
      
    • 编写UDF类

      package com.xxx.hive.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class TypeUDF extends UDF {public String evaluate(String platform) {String type = null;if ("同花顺".equals(platform) || "钱龙".equals(platform)) {type = "国营";} else {type = "私营";}return type;}
      }
      
    • 打jar包

    • 上传到Linux

    • 注册函数(二选一)

      • 注册临时函数

        bin/hive中,执行如下语句:

        • 添加jar到classpath中(不论jar是否在hive的lib目录下,都需要执行此语句)

          add jar /home/test/hive-2.3.7/hive_demo-1.0-SNAPSHOT.jar;
          
        • 注册函数

          create temporary function get_type as 'com.xxx.hive.udf.TypeUDF';
          
        • 查看函数

          show functions;
          
        • 使用函数

          select *,get_type(platform) from sockinfo;
          
        • 删除函数

          drop temporary function get_type;
          
      • 注册永久函数

        • 如果是使用bin/hiveserver2方式,需配置conf/hive-site.xml配置文件,添加如下配置

          <property><name>hive.aux.jars.path</name><value>file:///home/test/hive-2.3.7/hive_demo-1.0-SNAPSHOT.jar</value>
          </property>
          
        • 如果使用bin/hive方式,需配置conf/hive-env.sh,添加

          export HIVE_AUX_JARS_PATH=/home/test/hive-2.3.7/lib/json-serde-1.3.8-jar-with-dependencies.jar,/home/test/hive-2.3.7/lib/app_logs_hive-1.0-SNAPSHOT.jar,/home/test/hive-2.3.7/hive_demo-1.0-SNAPSHOT.jar
          
        • 在bin/hive中,注册永久函数(函数在哪个database注册,就在哪个database中使用和删除)

          create function get_type as 'com.xxx.hive.udf.TypeUDF';
          
        • 在mysql的hive数据库下FUNCS表中查看新注册的函数

          mysql -uroot -pxxxxuse hiveselect * from FUNCS;
          
        • 使用函数

          select *,get_type(platform) from sockinfo;
          
        • 删除函数

          drop function get_type;
          
  • 查询5G通讯分区对应的所有数据,信息包括:股票号 股票名称 行业 交易平台 ,平台性质。

    select *,get_type(platform) type from sockinfo where trade_p='5G通讯';
    

Hive案例之股票分析相关推荐

  1. Hive查询分析计算:股票分析

    Hive查询分析计算案例:股票分析 案例需求: 本案例是对单支股票一年中每日交易的数据处理,形成K线分析,重点在于前期数据规整处理与导入导出,从数据仓库方案的设计,涉及Hive优化操作,关系型数据库的 ...

  2. 股票分析报告怎么写?史上最强股票分析报告范文模板帮助你

    股票分析报告是投资者赚钱的第一步,也是最重要的一步,绝大多数盲目的闭眼玩家在买入股票之前,只是稍微粗略浏览下K线走势和基本公司资料就大手笔自信满满的跟风买入,实际等于摸黑下楼梯,掉坑里了也不知道,股票 ...

  3. 【python代码实现】人工神经网络分类算法及其实战案例(股票价格波动分析)

    目录 前置知识 1.前言 2.人工神经网络模型 2.1.神经元模型与单层神经网络 2.2.多层人工神经网络模型 人工神经网络分类算法 1.构建数据集 2.响应函数 3.模型训练 4.测试样本分类 案例 ...

  4. Excel集成股票分析工具案例

    在Excel菜单栏集成Excel分析工具 步骤一:安装Custom UI Editor For Microsoft Office 对Office文件进行编辑,添加菜单栏图标以及对应的宏 步骤二:创建并 ...

  5. DataFrame基础操作巩固——股票分析(一)

    以下案例分析全部在jupyter notebook里面完成 股票日期从2010年到2022年2月截至,虽然是2022年8月做的数据分析案例,但是是按所述日期进行分析的 需求一:股票分析 使用tusha ...

  6. 2021年大数据Spark(二十一):Spark Core案例-SogouQ日志分析

    目录 案例-SogouQ日志分析 业务需求 准备工作 HanLP 中文分词 样例类 SogouRecord 业务实现 ​​​​​​​搜索关键词统计 ​​​​​​​用户搜索点击统计 ​​​​​​​搜索时 ...

  7. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...

    基于Java语言开发的个性化股票分析技术:移动平均线(MA) 基于 Java 语言开发的个性化股票分析技术:移动平均线(MA)移动平均线(MA)是以道·琼斯的"平均成本概念"为理论 ...

  8. python mysql股票分析_一颗韭菜的自我修养:用Python分析下股市,练练手

    股市跌宕起伏.7 月初 A 股飙升,股票瞬间成为大家的热门讨论话题,「现在入场还来得及吗?」几乎成为新的问候语. 然而,经历了连续近 10 个交易日的快牛行情后,上证指数上涨势头放缓.这是牛市,还是熊 ...

  9. Python股票分析系列——基础股票数据操作(二).p4

    该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...

最新文章

  1. SAP SD基础知识之文本确定(Text Determination)
  2. .NET经典资源站点汇总
  3. SharePoint 2013常用开发工具分享
  4. jQuery图片自动轮转动画特效
  5. 大学计算机基础实训excel,大学计算机基础实训指导书
  6. 【ElasticSearch】Es 源码之 快照 RepositoriesModule RepositoriesService 源码解读
  7. qrcode生成带logo的二维码(插件,示例代码)
  8. iOS 地图坐标系转换
  9. 特斯拉为什么要降价?
  10. 火车票分批放票大概时间
  11. [USACO20JAN]Loan Repayment S
  12. 以太坊的区块和存储(一):区块头
  13. 如何迁移操作系统到ssd固态硬盘?
  14. 利用外观模式来实现对子系统的访问的工程实践
  15. SE 软件工程期末总结
  16. python numpy矩阵的数据类型转换
  17. 中文输入法 linux 下载64位,最新搜狗输入法linux版v2.2.0.0108 官方版(32位+64位)下载地址电脑版-锐品软件...
  18. ARQ自动重传协议模拟
  19. Shakti是什么?
  20. 强制下线?IE浏览器自动跳转Edge【视频演示】

热门文章

  1. 计算机管理中be启动不了,绝地求生BE服务启动不了怎么办 BE服务无法启动的解决方法...
  2. 51 Nod 1563——坐标轴上的最大团
  3. DG部署(主库rac)--rman 异机恢复方式
  4. java毕业设计少儿编程教育网站系统mybatis+源码+调试部署+系统+数据库+lw
  5. CA证书与ETCD集群
  6. 走进Microsoft Surface 的世界
  7. cdn.bootcss.com网站提供的第三方jQuery库遭到篡改
  8. 小米6刷Ubuntu Touch系统
  9. 达人评测 联想拯救者 Y9000K 2021怎么样
  10. 445端口的暴力破解