日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Pig股票交易数据处理

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

實訓目的

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

    1. 認識數(shù)據(jù)

    • 文件daily_stocks.csv文件中保存的是65020條股票交易數(shù)據(jù),各列說明如下。

    2. 環(huán)境準備

    • 安裝pig

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

    • 啟動hadoop環(huán)境
    • 啟動grunt shell。
    pig

    3. 數(shù)據(jù)上傳

    • 將數(shù)據(jù)文件daily_stocks.csv上傳到HDFS的/pig_input目錄下,并查看是否上傳成功。
    hadoop fs -put ~/data/daily_stocks.csv /pig_input hadoop fs -ls /pig_input

    4. 加載數(shù)據(jù)

    • 將daily_stocks.csv中的數(shù)據(jù)加載到名為stock的關(guān)系中,
    • 在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);

    • 并查看數(shù)據(jù)的前十行:


    5. 數(shù)據(jù)分組

    • 按交易所(exchange)進行分組,將結(jié)果保存到名為stock_exc_grp的關(guān)系中并檢查分組結(jié)果:
    stock_exc_grp = GROUP stock BY exchange; dump stock_exc_grp;


    6. 統(tǒng)計交易所數(shù)量

    • 根據(jù)分組后的數(shù)據(jù),統(tǒng)計出每只股票有幾家交易所可進行交易:
    unique_symbols = FOREACH stock_exc_grp {symbols = stock.symbol;unique_symbol = DISTINCT symbols;GENERATE group, COUNT(unique_symbol);};
    • 顯示結(jié)果
    dump unique_symbols;

    7. 統(tǒng)計平均開盤收盤價

    • 將stock關(guān)系按照股票代碼(symbol)進行分組,并統(tǒng)計每只股票的平均開盤與收盤價格:
    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. 統(tǒng)計平均最高最低價

    • 統(tǒng)計每只股票的平均最高和最低價格
    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. 導出數(shù)據(jù)

    • 將avg_stock_price_high_low, avg_stock_price_opens_closes 和 unique_symbols導出HDFS
      文件系統(tǒng)中
    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(',');
    • 查看導出的數(shù)據(jù)
    hadoop fs -ls /user/root hadoop fs -cat /user/root/unique_symbols/part-r-00000

    實訓總結(jié)

    • Pig包括兩部分:用于描述數(shù)據(jù)流的語言,稱為Pig Latin;和用于運行Pig Latin程序的執(zhí)行環(huán)境。
    • Pig不適合所有的數(shù)據(jù)處理任務,和MapReduce一樣,它是為數(shù)據(jù)批處理而設計的。如果只想查詢大數(shù)據(jù)集中的一小部分數(shù)據(jù),pig的實現(xiàn)不會很好,因為它要掃描整個數(shù)據(jù)集或絕大部分。
    • Pig Latin 程序有一系列語句構(gòu)成。操作和命令是大小寫無關(guān)的,而別名和函數(shù)名是大小寫敏感的。
    • Pig處理多行語句時,在整個程序邏輯計劃沒有構(gòu)造完畢前,pig并不處理數(shù)據(jù)。

    總結(jié)

    以上是生活随笔為你收集整理的Pig股票交易数据处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。