把傳統資料遷移到現代大資料平台有時是一件很令人畏懼的事,誠然,不是每個人都需要這麼去做,但是有時候新的分析方法确實能讓人看到資料中的驚喜,marc borowczak近日撰文描述了一些方法。
<b>下為譯文</b>
<b>part 1</b>
在這篇簡短的指導中,筆者将會簡短地回顧一種方法并且用我喜歡的資料集來示範。這不是一個ml庫也不是一個kaggle競賽的資料集,僅僅是積累了數十年筆者跟蹤塑膠模型集合産生的資料,如此這般一定會适合傳統的标準。
描述的步驟是在筆記本電腦上用virtualbox運作ubuntu 16.04.1 lts gnome,并且假定你已經儲存了一張excel notebook的csv格式(或者你已經有了一些現有的csv檔案)。這個例子将使用一個從excel表中儲存的csv檔案,也就是unbuilt.csv。假定該檔案是受保護的,但可以被mysql 5.7.15通路。這個例子中的csv位于/var/lib/mysql-files/unbuilt.csv。以下步驟是必需的:
在mysql中引入.csv檔案,并且可以備份一份壓縮的mysql資料庫檔案。
連接配接到在spark2.0.1上的mysql資料庫然後通路它的的資料:這裡将使用jupyter pyspark示範一種互動式的python方法,并且在下文留下一種基于現有方法的rstudio sparkyl通路。
<b>1. 在mysql表中引入一個.csv 檔案</b>
這一步很容易完成,假設你已經安裝完了mysql。
<b>a. 在mysql中建立一個新的資料庫</b>
首先你需要建立一個新的資料庫。簡便起見,你以根賬戶通路mysql建立一個新的資料庫(或者使用任意别的你已經有的使用者證書)。對于這個例子來說我們将會建立一個模型資料庫,并且挑選它以備使用:
<b>b. 在你的資料庫裡建立一個新的表</b>
下一步是建立一個表來引入.cvs資料,同時對于每一個領域宣告一種相容的格式(在這種情況下正在建立一種被稱作unbuilt的表)
<b>c. 引入csv資料</b>
最後一步是引入.csv資料到表中
為了完成這次操作,需要在mysql檔案夾中采用适當的許可。沒有成功從這個位置引入該檔案會導緻如下錯誤:
對于mysql安全設定而言,你引用了線上文檔。我們接下來描述的以下的可選步驟是為了增強你剛落戶于的資料庫,并且也在mysql的文檔中描述過。檢視示例 htpp://dev.mysql.com/doc/refman/5.7/en/examples.html。
一個快速且明智的檢查方法由閱讀資料庫,挑選表并運作一次快速的查詢組成。
用現在遷移到mysql的資料,我們現在走在了用現代的資料科學工具例如spark2.0.1來通路它的康莊大道上。
<b>2.在spark2.0.1中用jupyter pyspark通路mysql</b>
先前描述了怎樣使用toree去互動地使用spark 1.6.1.運作scala 2.10或者pyspark。toree最近被更新來支援scala2.11并且後者的建立已經被改編來運作在2016-10-6發行的spark2.0.1。
假設你有一個本地hadoop2.7.2操作版的工作站。一個典型的安裝有一個hduser發行,然後我們可以很容易地連接配接進一個hdfs環境并從專用檔案夾釋出。
可以看出,指令打開一個熟悉的jupyter notebooks并且友善地連接配接到一個pyspark核心。下面将詳細介紹一些通路步驟,以證明連接配接是可用的。

<b>結論</b>
這應該有助于展示将遺留資料遷移和連接配接到mysql的目的。進一步我們回顧了如何使用jupyter notebook通路pyspark和利用toree/spark2.0.1提供的互動界面。
真的沒有必要放棄遺留資料:将資料遷移到新的平台将使企業能夠在更廣泛的時間尺度上提取和分析資料,并打開新的方法來利用ml技術,分析結果和對結果采取行動。導入mysql資料就像在r-studio上操作一樣容易。在即将到來的文章中我們将會讨論那條路。
<b>引用</b>
1. mysql 5.7線上文檔
2. 拓展機器學習的方法(第二部分)
3. apache spark 2.0.1 線上文檔
4. apache toree github
5. matplotlib 線上文檔
<b>part 2</b>
這裡示範了相同的結果可以以更直接的方式實作。我們将要在我們上次使用的相同的平台(ubuntu
16.04.1 lts 運作于一個 windows virtualbox hadoop 2.7.2 和 spark 2.0.1)和相同的資料集(我的傳統的模型集合unbuilt.csv)上闡明這個。我們的目标是展示怎樣把資料遷移到hadoop hdfs并且直接地分析它和使用最新的在一個 jupyter 筆記本中帶有pyspark 2.0.1的 ml工具。
許多有趣的事實可以通過子集的結合被推斷出來,過濾并且聚合這些資訊,并且也在文檔中被記錄下來。比如,通過一個折線圖我們就能夠排出最受歡迎的規模,數量最多的模型和最有價值的項目,通過類别來對模型計數,……并且用現代的ml工具操作這些以前的資料。對大規模資料而言,聚合很容易實作,正如在這裡闡明的那樣。
這,又一次,服務于展示傳統資料的直接遷移的目的。回顧了從jupyter notebook使用pyspark如何通路并且利用toree/spark2.0.1提供的互動式的接口。一個jupyter notebook也被提供出來幫助你遷移資料。這裡可以重申真的沒有必要抛棄過去的資料。直接或間接地把資料遷移到新的平台上将會使在更廣的時間範圍内抽取和分析資料的生意成為可能,并且開啟一種新的方法來利用ml技術,分析結果和對發現采取行動。