Pig股票交易数据处理

news/2025/1/16 5:55:02/

实训目的

  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

v

实训总结

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

http://www.ppmy.cn/news/968142.html

相关文章

量化交易:股票量化策略介绍、Alpha和Beta

今日学习目标: 了解股票的量化交易策略种类了解Alpha和Beta 一、股票量化策略 股票量化交易策略最基本有两种形式,趋势交易(技术分析)和市场中性(基本面分析),经常使用的方法为多因子选股和趋势追踪 注:不管是趋势追踪策略还是…

分享tushare量化接口获取港股列表信息的代码

接口:https://gitee.com/metatradeapi 描述:获取港股列表信息 数量:单次可提取全部在交易的港股列表数据 输入参数 名称类型必选描述ts_codestrNTS代码list_statusstrN上市状态 L上市 D退市 P暂停上市 ,默认L 输出参数 名称类…

重磅!ChatGPT席卷全球,Salesforce将推出EinsteinGPT!

2月9日,Salesforce首席执行官Marc Benioff在Twitter上发布了这样一则推文,表示将于3月7日的TrailblazerDX 23上发布Salesforce EinsteinGPT,随后Salesforce的官方Twitter也进行了转发。 虽然还没有正式的新闻稿,但不少业内人士猜测…

!! A股历史平均市盈率走势图

http://value500.com/PE.asp 一、 A股历史平均市盈率走势图 *数据来源:上海证券交易所 分享到: 354 - 上海A股 深圳A股更新时间 2017年6月7日 2017年6月7日平均市盈率 16.62 34.88 二、市盈率是什么? 市盈率(Price to Earning Ratio&#xf…

简单的低频指数投资一:利用tushare计算指数市盈率

对于广大的投资者来说,投资指数基金是最简单而有效的选择。而目前一种投资指数的方法就是通过市盈率等指标来计算指数的估值,并通过低估买入,高估卖出的方法投资。 然而tushare只提供了上证50,沪深300,创业板等几个大…

[047量化交易]python获取股票 量比 换手率 市盈率-动态 市净率 总市值 流通市值

import akshare as ak# 获取沪 股票信息 stock_sh_a_spot_em_df ak.stock_sh_a_spot_em() # 获取深 股票信息 stock_sz_a_spot_em_df ak.stock_sz_a_spot_em() # 合并 stock_all_a_spot_em_df stock_sh_a_spot_em_df.append(stock_sz_a_spot_em_df) print(stock_all_a_spot_…

OpenAI 的外包数据标注员,时薪不足2美元,称工作是“精神创伤”

这是「进击的Coder」的第 810 篇技术分享 译者:核子可乐 策划:李冬梅 来源:infoQ “ 阅读本文大概需要 3 分钟。 ” ChatGPT 被视为近几年最具创新性的 AI 工具之一。这款强大的 AI 聊天机器人几乎可以生成任何问题的文本,从莎士…

关于大型语言模型的争论和局限

以色列巴伊兰大学教授Yoav Goldberg分享了他对大型语言模型的能力和局限性的看法,以及在语言理解方面的立场。(以下内容经授权后由OneFlow编译发布,译文转载请联系OneFlow获得授权。原文:https://gist.github.com/yoavg/59d174608…