大数据统计大量股票开盘和收盘的平均价

一、需要统计的文件:

二、单个文件内容:

三、程序:

程序来自小奶狗的博客

连接为:https://blog.csdn.net/pengyangyan/article/details/80115183

    package com.test4;  import java.io.IOException;  import java.util.Iterator;  import org.apache.hadoop.conf.Configuration;  import org.apache.hadoop.fs.Path;  import org.apache.hadoop.io.Text;  import org.apache.hadoop.mapreduce.Job;  import org.apache.hadoop.mapreduce.Mapper;  import org.apache.hadoop.mapreduce.Reducer;  import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;  import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;  import org.apache.hadoop.util.GenericOptionsParser;  public class CodeX {  /** * @param args * @throws IOException  * @throws InterruptedException  * @throws ClassNotFoundException  */  public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {  // TODO Auto-generated method stub  Configuration conf = new Configuration();  conf.set("fs.default.name", "hdfs://localhost:9000");  String[] otherArgs = (new GenericOptionsParser(conf,args)).getRemainingArgs();  if(otherArgs.length<2){  System.err.println("Usage:CodeX<in><out>");  System.exit(2);  }  Job job = Job.getInstance(conf,"CodeX");  job.setJarByClass(CodeX.class);  job.setMapperClass(CodeX.Map.class);  System.out.println("Mapper over");  //      job.setCombinerClass(CodeX.Reduce.class);  job.setReducerClass(CodeX.Reduce.class);  System.out.println("Reduce over");  job.setOutputKeyClass(Text.class);  job.setOutputValueClass(Text.class);  System.out.println("all over");  for(int i = 0;i<otherArgs.length-1;i++){  FileInputFormat.addInputPath(job, new Path(otherArgs[i]));  }         FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length-1]));         System.exit(job.waitForCompletion(true)?0:1);  }  public static class Map extends Mapper<Object,Text,Text,Text>{  private Text text = new Text();   private Text keys = new Text();  private int no = 0;  public Map(){  }  public void map(Object key,Text value,Context context)throws IOException,InterruptedException{  String line = value.toString();  this.no +=1;              System.out.println(this.no+line);             String[] lines = line.split("\\s+");  for(int i =0;i<lines.length;i++){  System.out.print(lines[i]+" ~~");  }  if(this.no == 1){  this.keys.set("股票编码:"+lines[0]);              }  if(this.no > 2){  if(lines.length == 7){  this.text.set(lines[0]+"+"+lines[1]+"+"+lines[4]);   System.out.println(this.no+"---->"+lines[0]+"+"+lines[1]+"+"+lines[4]);  context.write(this.keys, this.text);  }                 }         }  }  public static class Reduce extends Reducer<Text,Text,Text,Text>{        private Text text = new Text();       public void reduce(Text key,Iterable<Text> values,Context context) throws IOException, InterruptedException{  double sum1 = 0.0;  double sum2 = 0.0;  int n = 0;                System.out.println("...................start"+key.toString());  Iterator<Text> $it = values.iterator();  while($it.hasNext()){                     String record =$it.next().toString();  System.out.println(n);                    System.out.println("原始数据:"+record);  n++;                      System.out.println("第"+n+"次循环");  String []result = record.split("[+]");  System.out.println(Double.valueOf(result[1])+" "+Double.valueOf(result[2]));  sum1 +=(Double.valueOf(result[1])*100);                   sum2 +=(Double.valueOf(result[2])*100);                   System.out.println(sum1/100+" "+sum2/100);                    }  System.out.println("最后的结果:"+sum1/100+" "+sum2/100);  double openPrise = sum1/(100*n);  double closePrise = sum2/(100*n);  openPrise = (double)Math.round(openPrise*100)/100;  closePrise = (double)Math.round(closePrise*100)/100;  System.out.println("平均值:"+openPrise+" "+closePrise);  Double.toString(closePrise);  String result ="开盘平均价:"+Double.toString(openPrise)+",   收盘平均价:"+Double.toString(closePrise);  this.text.set(result);  context.write(key, this.text);  }  }  }  

四、运行程序后的统计结果:

在put文件时可能遇到的问题:

文件put不进到hdfs中,有可能是文件名里的符号问题,这时候只需要将文件名重命名即可,由于是大量文件,所以要一句shell命令对所有文件去除干扰符号,这里我输入的命令是:rename 's/\#60/60/' *.txt

重命名前:

重命名后:

当你cat一个文件后会发现其中的中文是乱码的,这是因为文件是GBK编码,只需要转换为utf-8即可。

命令为:conv -f gbk -t utf-8 1.txt>2.txt

大数据统计大量股票开盘平均价和收盘平均价相关推荐

  1. 关于大数据统计大量股票开盘平均价和收盘价的简单程序程序

    1.需要统计的文件 2.单个文件的内容 3.程序内容 package com.test4; import java.io.IOException; import java.util.Iterator; ...

  2. Axure高保真移动端智能数据监控+用户画像+饼状图+条形图+折线图数据统计+抖音直播app用户数据统计+智慧移动端主播粉丝、评论、播放量大数据统计+套餐购买、续费套餐prd流程

    作品介绍:Axure高保真移动端智能数据监控+用户画像+饼状图+条形图+折线图数据统计+直播app用户数据统计+智慧移动端主播粉丝.评论.播放量大数据统计+套餐购买.续费套餐prd流程 原型演示及下载 ...

  3. web端业务数据管理平台+Axure运营数据管理平台+月度数据统计分析+年度排行榜数据统计页面分析+运营大数据统计管理后台+用户信息管理+Axure通用web端高保真交互业务数据管理平台

    作品介绍:原型内容包含:web端业务数据管理平台+Axure运营数据管理平台+月度数据统计分析+年度排行榜数据统计页面分析+运营大数据统计管理后台+用户信息管理+Axure通用web端高保真交互业务数 ...

  4. 京东手机电商大数据统计平台搭建

    京东手机电商大数据统计平台搭建 一.虚拟机搭建 1.下载虚拟机 2.解压虚拟机 3.VMware扫描添加虚拟机 4.虚拟机网络说明 5.虚拟机已安装软件和框架说明 二.核心代码 三.数据展示环境搭建 ...

  5. 图解大数据 | 应用Map-Reduce进行大数据统计@实操案例

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/84 本文地址:http://www.showmeai.tech/article-det ...

  6. 大数据统计租房市场现状(上海篇)

    对某方面有统计需求的同学可以留言哟~O(∩_∩)O~!!! 数据下载时间:20170620 房间均价:为了对比1房,2房,3房哪个比较划算引入的概念.一条出租信息中,平均每个房间的价格,例如:3房的房 ...

  7. 大数据统计租房市场现状(深圳篇)

    对某方面有统计需求的同学可以留言哟~O(∩_∩)O~!!! 数据下载时间:20170611 平均房间价格:为了对比1房,2房,3房哪个比较划算引入的概念.一条出租信息中,平均每个房间的价格,例如:3房 ...

  8. 大数据统计租房市场现状(北京篇)

    对某方面有统计需求的同学可以留言哟~O(∩_∩)O~!!! 数据下载时间:20170615 平均房间价格:为了对比1房,2房,3房哪个比较划算引入的概念.一条出租信息中,平均每个房间的价格,例如:3房 ...

  9. 分析大数据时代的股票期货市场及其分析意义400字

    在大数据时代,股票期货市场受到了更多的关注,因为人们可以利用大数据技术来更好地分析市场趋势,并做出更明智的投资决策. 对于股票期货市场来说,大数据分析可以帮助投资者更好地了解市场动态,并做出更准确的投 ...

最新文章

  1. PHP 取302跳转后真实 URL 的两种方法
  2. 最大似然估计 (MLE) 最大后验概率(MAP)
  3. 基于Boost::beast模块的异步WebSocket服务器
  4. mysql 字符串类型
  5. python创建虚拟环境时出现拒绝访问_无法创建虚拟环境
  6. 3. 机器学习中为什么需要梯度下降_机器学习中一些模型为什么要对数据归一化?...
  7. Python学习第二天----网络基础及操作系统简介(安装linux系统)
  8. SWF反编译软件Action Script Viewer ASV2011/06发布
  9. Linux emacs考场配置及对拍脚本
  10. Eclipse安装插件支持jQuery智能提示
  11. MATLAB基本语法速成
  12. 水箱液位计算机控制系统设计,水箱水位PLC自动控制系统的设计_吕宁.pdf
  13. 争分夺秒的一晚和赛尔的烂网络
  14. [CTF]ROT5/13/18/47位移密码
  15. 面试官问你还有什么要问我的吗?
  16. 双侧检验的p值和单侧检验_t检验的时候怎么区分是单侧检验还是双侧呢?
  17. 跨境erp系统功能分析
  18. 二级分销跟差价收益有区别吗?
  19. 世界易学大会副主席孙志华斩获非全日制易学博士,倾情分享易学奥妙
  20. 转帖 金庸所有门派以及所有门派下的所有武功一览

热门文章

  1. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)
  2. JavaScript的工作原理
  3. 影响线型缩聚物分子量的因素_线型缩聚物的分子量与分子量分布.ppt
  4. 一方库、二方库、三方库 概念
  5. Autocad 2007安装和序列号
  6. PySide+PyDesigner出现错误:This application failed to start because no Qt platform plugin could be initia
  7. 译《The Part-Time Parliament》——终于读懂了Paxos协议!
  8. PMP考试自学可以吗? 一分钟让你搞清楚
  9. 右脑发达学计算机好吗,学习右脑你必须知道的几件事
  10. hihoCoder #1082 : 然而沼跃鱼早就看穿了一切