這個作業的要求來自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339。
首先,我是分析B站最火番劇劇迷們的評論,也就是我前面的文章------爬蟲大作業分析的數據。下面開始進行HIVE分析。
1.數據導入。因為我是用自己的數據進行分析,不免就要進行csv導出,其中用到了pandas,具體代碼加入到爬蟲數據中即可。
這是我自己的excel數據:
將自己的csv導入到bigdatacase里面,下載后直接移動和粘貼即可。然后測試一下自己是否導入成功,看看自己的路徑下面是否有自己的csv文件。我的路徑是 /usr/local/bigdatacase。
預處理,創建一個腳本文件pre_deal.sh,文件內容如下:
將文件另存為txt格式,並為bigdatacase授權。最后查詢數據,同時對以前的數據進行對比。
具體的學習可以去http://www.runoob.com/linux/linux-comm-awk.html,awk處理文本文件的語言。
接下來開啟HDFS:
在HDFS上建立bigdatabasecase/dataset。將bcomments.txt存入到hdfs的路徑中,最后進行驗證。
啟動MySQL數據庫、Hadoop和Hive:
創建數據庫dblab,並通過命令“use dblab”打開和使用數據庫:
創建外部表bdlab.bigdata_bcomments,並且把‘/bigdatacase/dataset’目錄下的數據加載到數據倉庫Hive中。(注意:里面的列類,都是根據自己的實際需求進行更改。如果熟悉數據語言,可進行相應的修改。)
最后,通過select語句查詢數據庫前10條數據和某一列的數據,檢查前面創建的表是否有問題。
2.數據分析。通過創建的數據庫表對大數據進行查詢和分析。
查詢劇迷性別,由此判斷B站最受歡迎番劇的受眾人群性別:
查詢劇迷評論,了解劇迷對這部番據的評價和觀后感。同時,查詢用戶評論時間了解劇迷們聚集觀劇的時間。
查詢某個B站用戶評論的點贊數和回復數:
向數據庫表重寫數據,覆蓋之前表里的數據,排除因預處理環境導致的數據庫表出現問題:
insert overwrite table bigdata_bcomment select * from bigdata_bcomment where id is not null;
查詢數據一共有多少條:
查詢用戶們的name屬性是否相同,來進行檢驗:
3.總結。
總的來說,這次的項目其實貫通了半個學期以來學習到的知識點,比如爬蟲大作業的爬數據、Hadoop的基礎運用、HDFS的運用、HIVE的運用和數據分析等等。所以整個項目,將所學知識的串聯到了一起。學習到了許多,花了很多時間做這個作業,認認真真寫,但是遇到的問題也是有以下:
a.自己挖掘的數據量很龐大,而且中文內容很多,因此在導入linux系統時出現了中文亂碼。
b.對於其中的很多知識點不懂,比如sed、awk都沒有理解和學習,因此在對數據文件進行預處理時出現了有些行或列為null的情況。
c.數據存入數據庫表前就出現了問題,那么在進行數據庫表內容查詢時會出現一些非預期的錯誤。
最后,嗯~受益匪淺。