顯示具有 Apache Spark 標籤的文章。 顯示所有文章
顯示具有 Apache Spark 標籤的文章。 顯示所有文章

2016年6月21日 星期二

[Spark] 利用 Spark 將亂七八糟資料格式的 Fortigate Log 檔轉成關聯式資料

圖片來源:http://www.fastcompany.com/1842000/company-chaos-you-dont-know-youre-creating

不論資料多雜亂,在做資料分析之前,總是先要整理成關聯式資料,這一段一直是分析中最麻煩也最惱人的一段,特別是當資料量大的時候,其中可能問題又更多了.這次遇到的麻煩是要固定將機器每天的 Log 檔轉成關聯式資料,聽起來不難,是很常見的需求,但是看了資料格式之後整個傻眼.

這樣的格式麻煩點在:
  1. 非一般的資料格式: 既不是關聯式資料,也不是 Json 格式(真的很想打設計這種 log 出來的人),沒辦法輕易地整理.
  2. 分隔符號不固定: 雖然後面的資料是用 = 做為key和value分隔,但是前面四個欄位不是,表示資料要分開處理.
  3. 資料欄位內有空格: 如果預設用" "當做每個欄位的分隔符號,會在這些內部有空格的地方吃了大虧,所以要另外寫工具來區別這種情況.
  4. 每筆資料有的key不一致: 這是最麻煩的事.例如有些筆資料有 location 這個 key ,但是有些資料沒有...,連 null 都不給.所以就算你處理完上面三件事,每筆資料的欄位長度還是不一樣.

2015年12月20日 星期日

[Spark] 那些創立社群教我的五件事





去年的這時候剛接觸了Spark,由於整個Hadoop生態系對我來說是個全新的世界,身邊的人也都剛開始摸,台灣也還沒有相關的社群討論.一時血氣方剛,找了以前的同事以及上網搭訕一些人就組了讀書會.因為之前也有找人組過R或Python的讀書會,但是通常沒幾次就散了,對於Spark我一開始也沒太大期望.雖然中間也曾青黃不接,但是沒想到竟然這樣就熬過了一年Orz. 想想是個奇蹟所以來整理一下創立SparkTW第一年的心得.

2015年12月11日 星期五

[Spark] Spark TW 2015年最後一場活動


2015年的最後一場,也是SparkTW成立一週年,特別有意義的場子.不用特別報名,但是晚來就只能坐地板了!
2015年底最強壓軸檔 -- 時間:12/16號(三)晚上 7:30 -- 地點:大安站燦坤旁資策會九樓

非常有榮幸邀請到在Kaggle以及業界都相當有經驗的Mark Peng大大來跟我們分享他在參與比賽時的寶貴經驗.

2015年11月23日 星期一

[Spark] Why Use Apache Spark?


For today, I would like to switch the focus from programing or technical details, and share some of my experience and opinion with you from a Spark user’s perspective.

As a data analyst and data engineer specializing in BIG DATA, Hadoop cluster is always handy in saving data. When it comes to ETL processes or analysis, besides Spark, we have the following choices:

2015年11月9日 星期一

[Career] Why you should keep finding a job even though you are on the job


enter image description here
pic source: http://www.isironline.org/category/job-and-workshop-postings/
Hope my boss would not see this article.

Keeping finding a job is very important especially to who are in the IT industry. Why? Keep in step with market needs.

2015年8月31日 星期一

[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境--HiveContext設定




Spark在1.3.0之後發佈新的DataFrame,與Hive有更多的結合,預設也會啟動HiveContext,可以直接使用sql指令撈取hive中的資料.一般如果Spark與Hive放在同一個環境,只要將hive的hive-site.xml放到spark路徑/conf下面,就可以直接使用.但是現在當我們的環境放在docker裡面的話,設定上就要動點手腳.
相關文章:
[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境
[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境--HiveContext設定
[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境-- numpy 設定

2015年4月9日 星期四

[Apache Spark] 有趣的新玩意兒-Apache Zeppelin

enter image description here
圖片來源:https://zeppelin.incubator.apache.org
先前介紹了使用Ipython Notebook來使用PySpark(連結),那麼麻煩的設定就是為了能夠藉由Ipython notebook的介面來使用spark.Ipython Notebook可以讓使用者立即與程式碼互動,對於資料分析或觀察都相當的方便.這麼好用的工具,當然也有大大開發了Spark的版本,但是設定上比較麻煩,就沒有特別介紹.但是好工具總是不寂寞,今天要介紹的Zeppelin,由NFLAB開發,在2015年三月正式加入Apache家族,不但可以直接以Ipython notebook的介面來操作Spark,還有令人驚訝的視覺化功能.

2015年3月25日 星期三

[Apache Spark] Spark SQL 1.3.0 簡介及心得



SPARK SQL 1.3.0 有了重大的改變,將原本的SCHEMA RDD轉成 DATAFRAME,發展方向也更加明確,這是綜合一些資源和嘗試的投影片,給大家參考,也請不吝指教.
幾個綜合的心得:

2015年1月28日 星期三

[Apache Spark][教學] Spark x Docker x ipython Notebook !(四)-pyspark設定+commit images

        我最近感受到催稿的壓力了orz,話不多說最終章開始.承繼之前的進度,設定完ipython notebook以及對外通道後,再來就是要設定pyspark.原理是將pyspark放入ipython的import路徑中就可以了.

2015年1月25日 星期日

[Apache Spark] Spark編成指南繁體中文版計畫啟動


        
        雖然現在大部分都是直接看英文資料,但是有中文的資料看起來還是非常方便.Spark目前在國內的中文資源還是相當貧乏,所以才想說可以從翻譯一些官方文件開始,讓更多人能夠輕易接觸這個技術,所以開了一個專案一起來共同翻譯~

2015年1月17日 星期六

[Apache Spark][教學] Spark x Docker x ipython Notebook !(二)-Python安裝設定篇


        文章開頭也是先謝謝前輩https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4.在上一回,[Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇,我們從大大那邊抓下來Spark的環境,但是還缺少python的環境,所以這篇文章就是要介紹怎樣在前一個環境中建立python環境.Docker在建立環境時有兩種方式,一種是進入container內,將程式安裝起來後,將建好的container儲存起來使用,另外一種就是用Dockerfile的方式紀錄安裝的過程.因為我Dockerfile還不熟,所以先介紹第一種方式.

[Apache Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇

圖片來源:http://www.docker.com/
       
        文章開頭先感謝前輩們的貢獻:http://philipzheng.gitbooks.io/docker_practice/.Docker是今年非常火紅的技術,可以透過輕量化虛擬container來實現系統或程式的部屬配置.我們在實物開發上常遇到的問題是,開發環境和正式環境彼此存在著差異,來來回回把程式搬到正式環境上執行是非常花時間的事情.Docker透過輕量化虛擬技術讓開發者可以很輕易地將程式放到模擬出來的正式環境執行,測試,減低了很多開發上的時間成本.同時Docker可以保證開發環境的一致性,如果不小心掛掉,簡單重啟一個就好,也節省很多維護的時間.
        我們可以在Docker上run Hadoop或Spark,把寫好的程式丟到上面執行,但是有沒有辦法直接在Docker的模擬出來的環境上開發spark程式,而且還是透過方便又強大的IDE介面(你當然也可以直接開vim寫,但是不在討論範圍內XD)?本文要介紹如何在Docker上面運行spark,並且透過ipython notebook來編輯,並以互動式方式來使用Spark.

2014年12月24日 星期三

[Apache Spark][開發] Spark 1.2.0發佈囉


        昨天Spark 1.2.0正式release囉!(https://spark.apache.org/news/spark-1-2-0-released.html)這次更新了不少東西.主要是增加了效能和穩定性,一些心得API,PYTHON的支援等等,以下將翻譯一些重要的部分:

2014年12月3日 星期三

[Apache Spark][基本架構] RDD特性(三)- RDD之間的依賴關係(Dependency)


        延續[Spark][基本架構] RDD特性(二)- 轉換(Transformations)和行動(Actions)提到的,RDD在進入行動之前,都是在不同的RDD之間做轉換,RDD會記錄下這些轉換過程,自己這個RDD是從哪個RDD(又稱為parentRDD)轉換過來的,這層父與子的關係就稱為Dependency(依賴關係).本篇文章會進一步說明依賴關係的類別.

2014年12月2日 星期二

[Apache Spark][基本架構] RDD特性(二)- 轉換(Transformations)和行動(Actions)


        其實Spark架構不大,但是真的一環扣著一環,拆開來講會有很多問題,但是當每個環節都搞懂後就覺得一切設計的又是非常合理(非常繞口的一段話).這幾篇基本架構的文章都是根據Spark的原始論文拆出來講的,試圖將Spark的基本精神跟各位分享.

2014年11月20日 星期四

[Apache Spark][基本架構] RDD特性(一)

        
        
        萬丈高樓平地起,要熟悉Spark就得熟悉RDD,要熟悉RDD,就是要看Doc.延續著上一篇:[Spark][基本架構] 關於RDD中的不可變性(immutable),說到當我們對RDD做運算時,其實都會產生不同的RDD.RDD的官方文件(http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.RDD)一開始說到這些不同的RDD都共同擁有五個特性: