日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pig股票交易数据处理

發布時間:2024/1/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pig股票交易数据处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實訓目的

  • 從daily_stocks.csv
  • 文件導入股票交易數據
  • 對數據進行分組
  • 計算股票的價格,包括平均最高最低價格,平均開盤收盤價格
  • 將計算的數據導出
  • 實訓內容

    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股票交易数据处理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。