最近在整理spark技術的應用,覺得 行爲特徵歸類, 相似產品或相似功能推薦 這塊比較熱門. 網上發現一個網上大數據實驗室,是廈門大學建立的一個網站,發佈一些大數據的知識.其中有一個案例,叫 "淘寶雙11數據分析與預測課程案例" ,我就用它練手.
實驗室網站鏈接: http://dblab.xmu.edu.cn/blog/spark/
案例主要要求如下:
- 對文本文件形式的原始數據集進行預處理
- 把文本文件的數據集導入到數據倉庫Hive中
- 對數據倉庫Hive中的數據進行查詢分析
- 使用Sqoop將數據從Hive導入MySQL
- 利用Eclipse搭建動態Web應用
- 利用ECharts進行前端可視化分析
- 利用Spark MLlib進行回頭客行爲預測
這個項目對知識要求比較高,hadoop框架 和spark框架都要會.下面是一個技能要求表:
所以一篇寫不下.只是重點說下練習中遇到的重點和難點吧.
首先,我最有點好奇的是"數據預處理"這個步驟. 一般原始數據是很大的文件,裏面內容格式也是比較雜亂的,一次跑成功也不可能.
一般數據預處理分3個步驟:
本人的理解是,(1)對元數據的數據類型歸類,比如日期是date型的,date型也可以轉成字符串型,而在比較日期的時候,轉成long型更好;而轉成long型又不好轉回去,因此可以增加一個long型字段,用來表示long型的日期時間;
(2)過濾偏差數據. 這個應該很難處理,畢竟數據集那麼大.可以針對異常數據設置過濾條件,可是過濾條件又不好拿捏.而且實際上,條件可能五花八門.比如買同一件商品,它可能來自上個用戶退訂產生的,這樣可能導致訂單總金額與收支流水不一致.
還有比如數據格式不統一,上一行同一列是年齡字段,下一行該列卻是金額字段.等等.
(3)偏差統計.這個需要用到統計數學了,聽說數據科學家在這方面研究比較多.
這個案例的"數據預處理"不多,主要是截取一小段數據片,比如10000行數據,預先導入HDFS文件裏面,試運行一下,然後把bug處理掉.
下回說下本人在Hive分析上遇到的情況吧.