數據分析需要用什麼技術?java還python好一點?

杭州從人眾網絡科技


我猜樓主問這個問題,主要還是對數據分析技術不太瞭解


先說結論:

如果你是想搭建完整的數據分析解決方案,從存儲,數據處理和清洗,分析,可視化,那就用java,畢竟java這塊解決方案和框架較多,比如hadoop,spark,flink等

如果你只是純數據分析,數據集比較單一,比如想快速在excel或數據庫中,檢索,查詢,提煉自己想要的數據,就用python


我們來看看目前企業對數據分析的需求吧:

20%的數據發揮著80%的業務價值;
80%的數據請求只針對20%的數據。


目前來看,不管是數據存儲處理、分析還是挖掘,最完整和成熟的生態圈還是基於關係型數據庫,比如報表、聯機分析等工具;另外就是數據分析人員更偏重於查詢分析語言如SQL、R、Python數據分析包而不是編程語言。

企業大數據平臺建設的二八原則是,將20%最有價值的數據——以結構化的形式存儲在關係型數據庫中供業務人員進行查詢和分析;而將80%的數據——以非結構化、原始形式存儲在相對廉價的Hadoop等平臺上,供有一定數據挖掘技術的數據分析師或數據工程師進行下一步數據處理。經過加工的數據可以以數據集市或數據模型的形式存儲在NoSQL數據庫中,這也是後面要講到的“離線”與“在線”數據。


數據庫到數據倉庫,是事務型數據到分析型數據的轉變,分析型數據需要包括的是:分析的主題、數據的維度和層次,以及數據的歷史變化等等。而對大數據平臺來說,對分析的需求會更細,包括:

查詢:快速響應組合條件查詢、模糊查詢、標籤

搜索:包括對非結構化文檔的搜索、返回結果的排序

統計:實時反映變化,如電商平臺的在線銷售訂單與發貨計算出的庫存顯示

挖掘:支持挖掘算法、機器學習的訓練集


針對不同的數據處理需求,可能需要設計不同的數據存儲,還需要考慮如何快速地將數據複製到對應的存儲點並進行合適的結構轉換,以供分析人員快速響應業務的需求。


JAVA技術棧:

Hadoop

一個分佈式系統基礎架構。

解決了大數據(大到一臺計算機無法進行存儲,一臺計算機無法在要求的時間內進行處理)的可靠存儲(HDFS)和處理(MapReduce)。


Hive

是建立在Hadoop之上的,使用Hadoop作為底層存儲的批處理系統。(可以理解為MapReduce的一層殼)

Hive是為了減少MapReduce jobs的編寫工作。

HBase

HBase是一種Key/Value系統,它運行在HDFS之上。

Hbase是為了解決Hadoop的實時性需求。

Spark和Storm

Spark和Storm都是通用的並行計算框架。
解決Hadoop只適用於離線數據處理,而不能提供實時數據處理能力的問題。

區別:
1. Spark基於這樣的理念,當數據龐大時,把計算過程傳遞給數據要比把數據傳遞給計算過程要更富效率。而Storm是把數據傳遞給計算過程。

2. 基於設計理念的不同,其應用領域也不同。Spark工作於現有的數據全集(如Hadoop數據)已經被導入Spark集群,Spark基於in-memory管理可以進行快訊掃描,並最小化迭代算法的全局I/O操作。Storm在動態處理大量生成的“小數據塊”上要更好(比如在Twitter數據流上實時計算一些匯聚功能或分析)。



Python技術棧


一張圖搞定

python技術棧


火龍果開發


先說結論,

問題1回答:數據分析技術簡單來說可歸類為統計分析技術和數據可視化兩類。

問題2回答:目前階段做數據分析使用Python更高效,方便一點。

希望我作為數據分析師的經驗能對你有幫助


1、數據分析的本質

數據分析是指用適當的統計方法對收集的大量數據進行數據分析,提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程,最後再通過得到的結論應用到行業中解決實際問題。

簡單概括來說數據分析就是-- 處理數據然後推進優化現實工作。

數據分析應用在各行各業,互聯網,工業,諮詢行業等,有一個共同點,數據分析都是為業務服務的,用於解決實際運營中出來的問題,或者探索業務可優化的空間。

明白了這一點,就知道數據分析不是目的,數據分析的結果產出對業務的實際提升和優化才是目的,數據分析只是一種解決的方法,既然是方法,我們就要考慮它的效果,成本(學習成本,使用成本)等。


2.數據分析的技能要求

以現在最熱門的互聯網行業的數據分析而言,隨便從招聘網站上截取部分應屆生數據分析師招聘JD,選取應屆生是因為相對要求低一點,對題主想要入門應該更有參考下價值。

不同公司業務不同,對於“崗位職責”先可以不用太關注,我們這裡主要看“任職資格”這一部分,關於技能方面,可以看到有SQL,Python/R,Spark,hive,BI工具等。

看起來需要掌握的很多,那我們再來通過大數據的方法看一下,獲取招聘網站上的招聘要求,根據工具關鍵詞出現的頻率,繪製成數據分析所需工具詞雲圖:

可以看到,Excel,sql,python,PPT,hive,spss等出現的評率最高,同時可以可以看到還有很多其他的工具技能要求,但這幾個出現頻率最高的肯定是基本要求,那麼是否這些工具我們都需要掌握呢,這個根據兩個方面,一是你所處的工作階段,二是作為數據分析師的不同方向。

我這裡從數據分析方法的角度將數據分析方向分為三個:業務數據分析,數據挖掘分析,大數據分析。將每個方向對應的工具和方法做成思維導圖如下:

可以見到,每個方向所對應的主要工具要求都不一樣,一般來說,從業務數據分析》數據挖掘分析》大數據分析的技能門檻是逐步提高的,而且技能要求也是疊加的,也就是說例如數據挖掘分析師也需要掌握業務數據分析的工具和方法。

但這並不是數據分析師的發展路徑,這只是數據分析不同的方向,如果對業務數據分析非常感興趣且工作非常有成效,有很好的數據分析思維,那麼完全可以往業務方向發展,只掌握SQL,EXCEL,PPT等成為商業分析師和集團戰略分析師也是沒有問題的,所以根據自己的情況,不用過分追求技術,別忘記,數據分析是為業務服務的!。


根據以上部分我們可以總結回答下題主的第一個問題(數據分析需要的技術),結合上圖,可以歸納為描述性統計分析技術(業務數據分析),探索性統計分析技術(數據挖掘,大數據分析),數據可視化(將數據分析結果圖表化,撰寫報告用或彙報用)。


3.Python

VS Java, 更高效,方便一點

既然題主提出Python和Java的對比,說明對編程語言和數據分析還是有一定了解的,結合上面2部分的分析,題主可能實際想知道的是Python和Java哪一個更適合做探索性的數據分析(數據挖掘和大數據分析),做簡單的探索性分析其實用SPSS和R語言等一樣可行。

但探索性數據分析裡目前非常重要且流行的一個方法是機器學習,目前機器學習的主要框架如Tensorflow, sklearn等均是基於Python語言,因為應用廣泛且被證明是高效可行的,所以目前來看使用成本相對較低,另外考慮到公司裡的團隊合作,使用同樣的編程語言,團隊交流合作也會更加高效。

另外涉及學習成本,Python出名的靈活便捷使其成為數據分析的首選,使用Python做數據分析,掌握基本語法之後,學會使用Numpy,Pandas,matplotlib等庫之後就可以開始數據分析,實現同樣的數據分析功能,先比於Java, Python用更少的代碼即可實現, 另外Python的眾多數據分析相關的開源庫也提供了很好的數據分析平臺。

而Java並非在數據領域很少使用,相反它是大數據平臺的基礎,例如Hadoop等大數據平臺是基於Java, 但這部分更多的是數據開發和數據倉庫方向的技術開發的內容,與數據分析有較大區別。即使是大數據分析師,在使用大數據平臺時,掌握Hive sql 也能完成取數要求,並不需要掌握Java。


綜上,數據分析技術因數據分析方向和階段各異,主要是統計分析和數據可視化,現階段Python比Java更適合做數據分析。謝謝


數據Talk


這是一個非常好的問題,作為一名IT從業者,我來回答一下。

首先,隨著大數據技術的落地應用,數據分析作為大數據的常見任務會逐漸增多,未來不僅IT(互聯網)行業會需要進行大量的數據分析,傳統行業領域也會逐漸釋放出大量的數據分析任務。

從當前的技術體系來看,目前常見的數據分析方式有兩種,一種是統計學方式,另一種是機器學習方式,而無論採用哪種數據分析方式,通常都離不開程序設計。當前在生產環境下,數據分析任務通常都基於平臺來展開,比如Hadoop、Spark就是比較常見的數據分析平臺。

在Hadoop和Spark平臺下,採用Java和Python都可以,同時也可以採用Scala和R等編程語言,開發人員可以根據自身的知識結構來選擇具體的編程語言,而對於初學者來說,當前學習Python語言是不錯的選擇。

採用Python進行數據分析有三方面好處,其一是Python語言自身比較簡單易學,初學者很容易上手;其二是Python語言有眾多的庫可以使用,比如Numpy、Matplotlib、Pandas等,這些庫對於提升Python數據分析能力有非常直接的幫助;其三是Python語言本身就是一門全場景編程語言,具有較強的落地應用能力。

從當前的使用情況來看,在數據分析領域,Python語言的上升趨勢還是比較明顯的,而且數據分析人員也比較願意使用Python,與Java語言主要應用在IT(互聯網)行業不同,Python語言在傳統行業的應用也比較普遍。

我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!


分享到:


相關文章: