生活随笔
收集整理的這篇文章主要介紹了
Pig股票交易数据处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實訓目的
從daily_stocks.csv文件導入股票交易數據對數據進行分組計算股票的價格,包括平均最高最低價格,平均開盤收盤價格將計算的數據導出
實訓內容
1. 認識數據
- 文件daily_stocks.csv文件中保存的是65020條股票交易數據,各列說明如下。
2. 環境準備
教程推薦 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股票交易数据处理的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。