实训目的

  1. 从daily_stocks.csv
  2. 文件导入股票交易数据
  3. 对数据进行分组
  4. 计算股票的价格,包括平均最高最低价格,平均开盘收盘价格
  5. 将计算的数据导出

实训内容

1. 认识数据

  • 文件daily_stocks.csv文件中保存的是65020条股票交易数据,各列说明如下。

2. 环境准备

  • 安装pig

教程推荐 https://blog.csdn.net/qq_42881421/article/details/84331794

  • 启动hadoop环境
  • 启动grunt shell。
pig

3. 数据上传

  • 将数据文件daily_stocks.csv上传到HDFS的/pig_input目录下,并查看是否上传成功。
hadoop fs -put ~/data/daily_stocks.csv /pig_input
hadoop fs -ls /pig_input

4. 加载数据

  • 将daily_stocks.csv中的数据加载到名为stock的关系中,
  • 在grunt shell中输入如下命令:
#注意自己设置的端口
stock = LOAD 'hdfs://hadoop102:8020/pig_input/daily_stocks.csv' USING PigStorage(',') as (exchange:chararray,symbol:chararray,date:chararray,stock_price_open:double,stock_price_high:double,stock_price_low:double,stock_price_close:double,stock_volume:double,stock_price_adj_close:double);

  • 并查看数据的前十行:


5. 数据分组

  • 按交易所(exchange)进行分组,将结果保存到名为stock_exc_grp的关系中并检查分组结果:
stock_exc_grp = GROUP stock BY exchange;
dump stock_exc_grp;


6. 统计交易所数量

  • 根据分组后的数据,统计出每只股票有几家交易所可进行交易:
unique_symbols = FOREACH stock_exc_grp {symbols = stock.symbol;unique_symbol = DISTINCT symbols;GENERATE group, COUNT(unique_symbol);};
  • 显示结果
dump unique_symbols;

7. 统计平均开盘收盘价

  • 将stock关系按照股票代码(symbol)进行分组,并统计每只股票的平均开盘与收盘价格:
stock_symbol_grp = GROUP stock BY symbol;avg_stock_price_opens_closes = FOREACH stock_symbol_grp {stock_price_open = stock.stock_price_open;stock_price_close = stock.stock_price_close;GENERATE group, AVG(stock_price_open),AVG(stock_price_close); };dump avg_stock_price_opens_closes;

8. 统计平均最高最低价

  • 统计每只股票的平均最高和最低价格
avg_stock_price_high_low = FOREACH stock_symbol_grp {stock_price_high = stock.stock_price_high;stock_price_low = stock.stock_price_low;GENERATE group, AVG(stock_price_high),AVG(stock_price_low);};dump avg_stock_price_high_low;

9. 导出数据

  • 将avg_stock_price_high_low, avg_stock_price_opens_closes 和 unique_symbols导出HDFS
    文件系统中
store unique_symbols into 'unique_symbols' using PigStorage(',');store avg_stock_price_opens_closes into 'avg_stock_price_opens_colses' using PigStorage(',');store avg_stock_price_high_low into 'avg_stock_price_high_low' using PigStorage(',');
  • 查看导出的数据
hadoop fs -ls /user/root
hadoop fs -cat /user/root/unique_symbols/part-r-00000

实训总结

  • Pig包括两部分:用于描述数据流的语言,称为Pig Latin;和用于运行Pig Latin程序的执行环境。
  • Pig不适合所有的数据处理任务,和MapReduce一样,它是为数据批处理而设计的。如果只想查询大数据集中的一小部分数据,pig的实现不会很好,因为它要扫描整个数据集或绝大部分。
  • Pig Latin 程序有一系列语句构成。操作和命令是大小写无关的,而别名和函数名是大小写敏感的。
  • Pig处理多行语句时,在整个程序逻辑计划没有构造完毕前,pig并不处理数据。

Pig股票交易数据处理相关推荐

  1. Pig的安装和简单使用

    1.Pig是基于hadoop的一个数据处理的框架. MapReduce是使用java进行开发的,Pig有一套自己的数据处理语言,Pig的数据处理过程要转化为MR来运行. 2.Pig的数据处理语言是数据 ...

  2. 大数据处理架构Hadoop

    Hadoop项目结构 Hive 数据仓库:把SQL语句转换成MapReduce作业 Pig流数据处理:一个基于Hadoop的大规模数据分析平台提供类似SQL的查询语言pig Latin Oozie作业 ...

  3. 使用 Pig 进行数据分析

    本文,我们将以一个具体案例说明,如何通过Pig--这一便捷的框架,进行数据的处理与分析工作. (1) 上传待分析文件到 hdfs: 比如我们要处理的用户上网日志信息,下载地址,上网日志数据(hadoo ...

  4. 从技术上解读大数据的应用现状和开源未来

    来源:网络大数据 作者 | 韩锐. Lizy Kurian John.詹剑锋 摘要:近年来,随着大数据系统的快速发展,各式各样的开源基准测试集被开发出来,以评测和分析大数据系统并促进其技术改进.然而, ...

  5. 从技术上解读大数据的应用现状和开源未来! | 技术头条

    作者 | 韩锐. Lizy Kurian John.詹剑锋 责编 | 胡巍巍 近年来,随着大数据系统的快速发展,各式各样的开源基准测试集被开发出来,以评测和分析大数据系统并促进其技术改进.然而,迄今为 ...

  6. 物联网与大数据技术-3

    物联网与大数据技术(Hadoop篇) 一.Hadoop简介 1.Hadoop介绍 2.Hadoop诞生的关键论文 二.Hadoop发展史 三.Hadoop特点 四.Hadoop结构组成 1.HDFS ...

  7. 再度学习大数据技术与应用(厦门大学林子雨)

    再度学习大数据技术与应用(厦门大学林子雨) 4V概念 大数据 -结构化数据与非结构化数据组成 数据量大 处理速度快 (秒级决策) 价值密度低 商业价值高 大数据概念和影响 以数据为驱动去发现和解决问题 ...

  8. 使用pig对钓鱼网站链接url做词频统计【大数据处理与分析技术】

    使用pig对钓鱼网站链接url做词频统计(大数据处理与分析技术) 数据展示:(verified_online.csv) grunt> A = load 'verified_online.csv' ...

  9. 2019 年,Hadoop 还是数据处理的可选方案吗?

    来自:网络大数据 目前云驱动数据处理和分析呈上升趋势,我们在本文中来分析下,Apache Hadoop 在 2019 年是否还是一个可选方案. 从我第一次使用 Apache Hadoop 生态系统开始 ...

最新文章

  1. setup.py安装
  2. python 基础之第四天
  3. 华科硕士,一个优秀的数据分析师
  4. Docker通过Cgroup 资源配置
  5. 字数监控,价格监控等
  6. Factories Gym - 102222G(2018宁夏邀请赛暨2019银川icpc网络预选赛)
  7. Elasticsearch的Groovy Script自定义评分检索
  8. Java应用程序中的验证
  9. 带你理解Spring AOP
  10. PAT乙类之1011 A+B 和 C
  11. 爬虫-保存cookie到本地-利用MozillaCookieJar
  12. 在C/C++函数中使用可变参数
  13. Android IOS WebRTC 音视频开发总结(六二)-- 大数据解密国外实时通讯行业开发现状...
  14. Dubbo与Zookeeper伪集群部署
  15. 4.1 制定项目章程
  16. LEF和GDS匹配问题
  17. Andromeda:适用于多进程架构的组件通信框架
  18. 基于Matlab-gui信号系统设计
  19. 计算机上的mrc代表,mrc是什么?
  20. Nginx的模块与工作原理

热门文章

  1. 加密(对称、非对称),签名(算法),指纹和指纹算法,认证证书CA
  2. 产品创新设计:品牌价值提升的主要途径
  3. 销售文案里的促销价格怎样设置更有效?
  4. 学生时代最喜欢的球星
  5. b站看老九学习c++中的杂记
  6. 网页代码各种名称及作用 HTML全部
  7. 应用计算机测定线性电阻电路图和实物图,中国大学MOOC电子线路设计、测试与实验二网课答案...
  8. 2021合工大计算机专业复试线,2021合肥工业大学研究生分数线一览表(含2019-2020历年复试)...
  9. C语言 | scanf函数
  10. Yarn启动报错,ERROR: Cannot set priority of registrydns process xxxxx