spark實戰(一):對資料處理的理解
這是崔斯特的第六十六篇原創文章
大資料的學習經歷
大資料是什麼,我覺得應該有這麼幾步:
做了一段時間的爬蟲,或者說叫資料採集,但是從來沒有接觸到大資料的下一步。最近和慢慢聊了下,對資料處理也很感興趣,便想去接觸、嘗試。
在慢慢、登登等人的幫助下,開始學習了一段時間的Spark。剛開始學習SQL語句,現在就記得簡單的那些了。然後去看Spark文件,自己動手開始寫。
因為團隊主要用Scala開發,所以中途又花了一些時間來學習Scala語言,感覺和Python有許多類似的地方,並不是太難,但是Scala有一些特性,不是太明白,主要是自己寫太少了。爬蟲什麼的還是用Python。
然後再去看具體的Spark 專案,模仿(抄襲)別人的程式碼,大概也看懂了一些,由於始終沒有自己實踐來操作,所以缺乏實際操作能力。最好的辦法就是自己去寫,所以計劃自己去單獨做一個專案試試看,手頭上還有好多已開發但是還沒開始計算的專案,我自己可以先試試看。
大資料處理步驟
在上面所說的基礎上再說細一些。
- 資料採集就別說了,就是採集我們所需要的(產品經理要求的)資料
- 資料清洗這裡,是和資料採集有很大關係的。分為這麼兩步:
- 提取指定資料。因為我們在做資料採集的時候,為了保證資料的完整性,是儘可能多的儲存原始資料,也就是別人給多少,我就取多少,但是這些資料並非都是有用的資料,所以第一步是需要去提取原始資料表中我們所需要的指定資料。這裡方法有很多,用SQL,或者在道路資料的時候直接選取那些欄位即可。最後我們把這些提取的資料重新儲存在新的表中,這樣後面計算會方便很多。(其實這一步在資料採集就可以完成,但是誰也說不清到底以後會不會需要更多的資料)
- 清洗資料。比如時間維度、為空欄位等等,這些現在遇到的還不多,以後再補上。
- 指標計算。這一步就需要根據具體的需求來計算各種維度,並把計算好的資料儲存新表。
- 資料展示。這部分好像是後端做的,待了解。
需要了解的知識
目前感覺以上部分都有一知半解,必須要實際去做才能知道到底那部分掌握,那部分還不懂。