1. 如何自學數據分析
第一方面是數學基礎,第二方面是統計學基礎,第三方面是計算機基礎。要想在數據分析的道路上走得更遠,一定要注重數學和統計學的學習。數據分析說到底就是尋找數據背後的規律,而尋找規律就需要具備演算法的設計能力,所以數學和統計學對於數據分析是非常重要的。
而想要快速成為數據分析師,則可以從計算機知識開始學起,具體點就是從數據分析工具開始學起,然後在學習工具使用過程中,輔助演算法以及行業致死的學習。學習數據分析工具往往從Excel工具開始學起,Excel是目前職場人比較常用的數據分析工具,通常在面對10萬條以內的結構化數據時,Excel還是能夠勝任的。對於大部分職場人來說,掌握Excel的數據分析功能能夠應付大部分常見的數據分析場景。
在掌握Excel之後,接下來就應該進一步學習資料庫的相關知識了,可以從關系型資料庫開始學起,重點在於Sql語言。掌握資料庫之後,數據分析能力會有一個較大幅度的提升,能夠分析的數據量也會有明顯的提升。如果採用資料庫和BI工具進行結合,那麼數據分析的結果會更加豐富,同時也會有一個比較直觀的呈現界面。
數據分析的最後一步就需要學習編程語言了,目前學習python語言是個不錯的選擇,Python語言在大數據分析領域有比較廣泛的使用,而且Python語言自身比較簡單易學,即使沒有編程基礎的人也能夠學得會。通過Python來採用機器學習的方式實現數據分析是當前比較流行的數據分析方式。
2. python和hadoop有什麼聯系
沒聯系
python 是一門動態語言,
hadoop是一個分布式計算的框架, 是用java寫的.
他們是兩個層次的東西.
如果說非要有聯系, 就是python可以應用hadoop框架, 做分布式計算的開發.
但是語言和框架, 是可以自己拼裝的. java也可以使用hadoop開發分布式計算,
python也可以用spark開發分布式計算, 他們是松耦合的, 可以自己根據需求搭配
3. 程序員轉行大數據是個明智的選擇嗎
程序員又被人們戲稱為「程序猿」,雖然薪資不低卻依然掩飾不住悲催的命運:加班、單身成了這一職業的代名詞。而最重要的,是職業發展限制性較高,常常有程序員憂慮自己的職業只是一碗青春飯。而正在這時候,大數據時代來臨了,程序員們彷彿看到了希望的曙光,想要投身大數據行業。那麼,程序員轉行大數據是個明智的選擇嗎?
除去個人因素,大數據的確具有十分強大的發展潛力。從國家政策到國內各大企業的重視程度,無一不在為大數據時代的騰飛積蓄著力量。而且,不同於傳統的IT行業,大數據行業其實更像是一個工具,也可以說是各行各業的一個神器。它的應用范圍十分廣泛,幾乎360行,行行都能利用大數據分享到不小的紅利。大數據技術能夠精準地引導企業進行企業決策,把企業從傳統的「憑經驗吃飯」的套路中解脫出來。從此以後,再也沒人說「嘴上無毛,辦事不牢」了,經驗代表過去,而大數據代表著未來。大數據工程師經過多年的歷練,說是企業的「軍師」也不為過。而廣泛的行業范疇更為大數據專業人才提供了無限的可能。可以說,大數據給了人們一個更廣闊的發展空間,無限的發展可能。而相比之下,程序員的發展空間就會顯得局促很多。其實,任何行業都不是一味的黯淡無光和一味的前途無量。還是需要看個人的喜好和專長。如果你對大數據感興趣,歡迎來報名光環大數據培訓班,相信你會有一個美好的將來!
4. 如何使用Python為Hadoop編寫一個簡單的MapRece程序
我們將編寫一個簡單的 MapRece 程序,使用的是C-Python,而不是Jython編寫後打包成jar包的程序。
我們的這個例子將模仿 WordCount 並使用Python來實現,例子通過讀取文本文件來統計出單詞的出現次數。結果也以文本形式輸出,每一行包含一個單詞和單詞出現的次數,兩者中間使用製表符來想間隔。
先決條件
編寫這個程序之前,你學要架設好Hadoop 集群,這樣才能不會在後期工作抓瞎。如果你沒有架設好,那麼在後面有個簡明教程來教你在Ubuntu linux 上搭建(同樣適用於其他發行版linux、unix)
如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立單節點的 Hadoop 集群
如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立多節點的 Hadoop 集群
Python的MapRece代碼
使用Python編寫MapRece代碼的技巧就在於我們使用了 HadoopStreaming 來幫助我們在Map 和 Rece間傳遞數據通過STDIN (標准輸入)和STDOUT (標准輸出).我們僅僅使用Python的sys.stdin來輸入數據,使用sys.stdout輸出數據,這樣做是因為HadoopStreaming會幫我們辦好其他事。這是真的,別不相信!
5. python數據分析師需要學什麼
python數據分析師。現在大數據分析可以熱得不要不要的。從發展來看,python數據分析師很有前景的。但也並不是隨便一個公司就可以做大數據分析的。有幾個問題是做大數據要考慮的:大數據來源是否全面,分析什麼,誰來使用等等。當然如果能到能做大數據的公司,那薪水還是可觀的。要做python數據分析師,有一些東西是不得不學的,要不然,做不了分析師的,可能做的程序員,幫別人實現分析的結果而已。第一:統計學知識。(推薦學習:Python視頻教程)
這是很大一部分大數據分析師的短板。當然這里說的不是簡單的一些統計而已。而是包括均值、中位數、標准差、方差、概率、假設檢驗等等具有時間、空間、數據本身。差不多應該是理工科的高等數學的知識,甚至還高一點兒。要能夠建模,要不然你分析出來的結果離實際相差十萬八千里的話,估計要不了幾天,你就會被卷鋪蓋走人了。當然,做個一般的大數據分析師,就不會涉及到很深的高等數學知識了,但要做一個牛B的大數據分析師,還是要學習學習再學習。
第二:很多人想不到的,你還是把EXCEL玩熟悉吧。
當然不需要掌握的高大全,也得要掌握常用的函數,比如重點包括但不限於sum,count,sumif,countif,find,if,left/right,時間轉換,透視表,各種圖表做法等之類的。如果數據量不算是特別大的話,Excel能夠解決很多問題。比如,篩選部分贓數據,排序,挑選滿足條件的數據等等。
第三:分析思維的練習。
比如結構化思維、思維導圖、或網路腦圖、麥肯錫式分析,了解一些smart、5W2H、SWOT等等那就更好了。不一定要掌握多深多全,但一定要了解一些。
第四:資料庫知識。
大數據大數據,就是數據量很多,Excel就解決不了這么大數據量的時候,就得使用資料庫。如果是關系型資料庫,比如Oracle、mysql、sqlserver等等,你還得要學習使用SQL語句,篩選排序,匯總等等。非關系型資料庫也得要學習,比如:Cassandra、Mongodb、CouchDB、Redis、 Riak、Membase、Neo4j 和 HBase等等,起碼常用的了解一兩個,比如Hbase,Mongodb,redis等。
第五:業務學習。
其實對於大數據分析師來說,了解業務比了解數據更重要。對於行業業務是怎麼走的對於數據的分析有著非常重要的作用,不了解業務,可能你分析的結果不是別人想要的。
第六:開發工具及環境。
比如:Linux OS、Hadoop(存儲HDFS,計算Yarn)、Spark、或另外一些中間件。目前用得多的開發工具python等等語言工具。
總之,要做一個高級或總監級的大數據分析師那是相當的燒腦的。要學習了解的東西如果只是單純的數據方面的話,那業務和統計知識的學習是必不可少的。如果是實用型的大數據分析師可能只掌握某些部分就可以。大數據開發工程師的話,基本就是掌握開發環境、開發語言以及各種圖表的應用,也是可以滿足的。畢竟,一個公司要團隊協作,一人懂一部分就可以搞出分析產品出來了。認定一項事情就去干!越干越輕松,越干越牛B!
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python數據分析師需要學什麼的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
6. 如何使用Python為Hadoop編寫一個簡單的MapRece程序
在這個實例中,我將會向大家介紹如何使用Python 為 Hadoop編寫一個簡單的MapRece
程序。
盡管Hadoop 框架是使用Java編寫的但是我們仍然需要使用像C++、Python等語言來實現Hadoop程序。盡管Hadoop官方網站給的示常式序是使用Jython編寫並打包成Jar文件,這樣顯然造成了不便,其實,不一定非要這樣來實現,我們可以使用Python與Hadoop 關聯進行編程,看看位於/src/examples/python/WordCount.py 的例子,你將了解到我在說什麼。
我們想要做什麼?
我們將編寫一個簡單的 MapRece 程序,使用的是C-Python,而不是Jython編寫後打包成jar包的程序。
我們的這個例子將模仿 WordCount 並使用Python來實現,例子通過讀取文本文件來統計出單詞的出現次數。結果也以文本形式輸出,每一行包含一個單詞和單詞出現的次數,兩者中間使用製表符來想間隔。
先決條件
編寫這個程序之前,你學要架設好Hadoop 集群,這樣才能不會在後期工作抓瞎。如果你沒有架設好,那麼在後面有個簡明教程來教你在Ubuntu Linux 上搭建(同樣適用於其他發行版linux、unix)
如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立單節點的 Hadoop 集群
如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立多節點的 Hadoop 集群
Python的MapRece代碼
使用Python編寫MapRece代碼的技巧就在於我們使用了 HadoopStreaming 來幫助我們在Map 和 Rece間傳遞數據通過STDIN (標准輸入)和STDOUT (標准輸出).我們僅僅使用Python的sys.stdin來輸入數據,使用sys.stdout輸出數據,這樣做是因為HadoopStreaming會幫我們辦好其他事。這是真的,別不相信!
Map: mapper.py
將下列的代碼保存在/home/hadoop/mapper.py中,他將從STDIN讀取數據並將單詞成行分隔開,生成一個列表映射單詞與發生次數的關系:
注意:要確保這個腳本有足夠許可權(chmod +x /home/hadoop/mapper.py)。
#!/usr/bin/env python
import sys
# input comes from STDIN (standard input)
for line in sys.stdin:
# remove leading and trailing whitespace
line = line.strip()
# split the line into words
words = line.split()
# increase counters
for word in words:
# write the results to STDOUT (standard output);
# what we output here will be the input for the
# Rece step, i.e. the input for recer.py
#
# tab-delimited; the trivial word count is 1
print '%s\\t%s' % (word, 1)在這個腳本中,並不計算出單詞出現的總數,它將輸出 "<word> 1" 迅速地,盡管<word>可能會在輸入中出現多次,計算是留給後來的Rece步驟(或叫做程序)來實現。當然你可以改變下編碼風格,完全尊重你的習慣。
Rece: recer.py
將代碼存儲在/home/hadoop/recer.py 中,這個腳本的作用是從mapper.py 的STDIN中讀取結果,然後計算每個單詞出現次數的總和,並輸出結果到STDOUT。
同樣,要注意腳本許可權:chmod +x /home/hadoop/recer.py
#!/usr/bin/env python
from operator import itemgetter
import sys
# maps words to their counts
word2count = {}
# input comes from STDIN
for line in sys.stdin:
# remove leading and trailing whitespace
line = line.strip()
# parse the input we got from mapper.py
word, count = line.split('\\t', 1)
# convert count (currently a string) to int
try:
count = int(count)
word2count[word] = word2count.get(word, 0) + count
except ValueError:
# count was not a number, so silently
# ignore/discard this line
pass
# sort the words lexigraphically;
#
# this step is NOT required, we just do it so that our
# final output will look more like the official Hadoop
# word count examples
sorted_word2count = sorted(word2count.items(), key=itemgetter(0))
# write the results to STDOUT (standard output)
for word, count in sorted_word2count:
print '%s\\t%s'% (word, count)
測試你的代碼(cat data | map | sort | rece)
我建議你在運行MapRece job測試前嘗試手工測試你的mapper.py 和 recer.py腳本,以免得不到任何返回結果
這里有一些建議,關於如何測試你的Map和Rece的功能:
——————————————————————————————————————————————
\r\n
# very basic test
hadoop@ubuntu:~$ echo "foo foo quux labs foo bar quux" | /home/hadoop/mapper.py
foo 1
foo 1
quux 1
labs 1
foo 1
bar 1
——————————————————————————————————————————————
hadoop@ubuntu:~$ echo "foo foo quux labs foo bar quux" | /home/hadoop/mapper.py | sort | /home/hadoop/recer.py
bar 1
foo 3
labs 1
——————————————————————————————————————————————
# using one of the ebooks as example input
# (see below on where to get the ebooks)
hadoop@ubuntu:~$ cat /tmp/gutenberg/20417-8.txt | /home/hadoop/mapper.py
The 1
Project 1
Gutenberg 1
EBook 1
of 1
[...]
(you get the idea)
quux 2
quux 1
——————————————————————————————————————————————
在Hadoop平台上運行Python腳本
為了這個例子,我們將需要三種電子書:
The Outline of Science, Vol. 1 (of 4) by J. Arthur Thomson\r\n
The Notebooks of Leonardo Da Vinci\r\n
Ulysses by James Joyce
下載他們,並使用us-ascii編碼存儲 解壓後的文件,保存在臨時目錄,比如/tmp/gutenberg.
hadoop@ubuntu:~$ ls -l /tmp/gutenberg/
total 3592
-rw-r--r-- 1 hadoop hadoop 674425 2007-01-22 12:56 20417-8.txt
-rw-r--r-- 1 hadoop hadoop 1423808 2006-08-03 16:36 7ldvc10.txt
-rw-r--r-- 1 hadoop hadoop 1561677 2004-11-26 09:48 ulyss12.txt
hadoop@ubuntu:~$
復制本地數據到HDFS
在我們運行MapRece job 前,我們需要將本地的文件復制到HDFS中:
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -FromLocal /tmp/gutenberg gutenberg
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls
Found 1 items
/user/hadoop/gutenberg <dir>
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls gutenberg
Found 3 items
/user/hadoop/gutenberg/20417-8.txt <r 1> 674425
/user/hadoop/gutenberg/7ldvc10.txt <r 1> 1423808
/user/hadoop/gutenberg/ulyss12.txt <r 1> 1561677
執行 MapRece job
現在,一切准備就緒,我們將在運行Python MapRece job 在Hadoop集群上。像我上面所說的,我們使用的是
HadoopStreaming 幫助我們傳遞數據在Map和Rece間並通過STDIN和STDOUT,進行標准化輸入輸出。
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar
-mapper /home/hadoop/mapper.py -recer /home/hadoop/recer.py -input gutenberg/*
-output gutenberg-output
在運行中,如果你想更改Hadoop的一些設置,如增加Rece任務的數量,你可以使用「-jobconf」選項:
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar
-jobconf mapred.rece.tasks=16 -mapper ...
一個重要的備忘是關於Hadoop does not honor mapred.map.tasks
這個任務將會讀取HDFS目錄下的gutenberg並處理他們,將結果存儲在獨立的結果文件中,並存儲在HDFS目錄下的
gutenberg-output目錄。
之前執行的結果如下:
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar
-mapper /home/hadoop/mapper.py -recer /home/hadoop/recer.py -input gutenberg/*
-output gutenberg-output
additionalConfSpec_:null
null=@@@userJobConfProps_.get(stream.shipped.hadoopstreaming
packageJobJar: [/usr/local/hadoop-datastore/hadoop-hadoop/hadoop-unjar54543/]
[] /tmp/streamjob54544.jar tmpDir=null
[...] INFO mapred.FileInputFormat: Total input paths to process : 7
[...] INFO streaming.StreamJob: getLocalDirs(): [/usr/local/hadoop-datastore/hadoop-hadoop/mapred/local]
[...] INFO streaming.StreamJob: Running job: job_200803031615_0021
[...]
[...] INFO streaming.StreamJob: map 0% rece 0%
[...] INFO streaming.StreamJob: map 43% rece 0%
[...] INFO streaming.StreamJob: map 86% rece 0%
[...] INFO streaming.StreamJob: map 100% rece 0%
[...] INFO streaming.StreamJob: map 100% rece 33%
[...] INFO streaming.StreamJob: map 100% rece 70%
[...] INFO streaming.StreamJob: map 100% rece 77%
[...] INFO streaming.StreamJob: map 100% rece 100%
[...] INFO streaming.StreamJob: Job complete: job_200803031615_0021
[...] INFO streaming.StreamJob: Output: gutenberg-output hadoop@ubuntu:/usr/local/hadoop$
正如你所見到的上面的輸出結果,Hadoop 同時還提供了一個基本的WEB介面顯示統計結果和信息。
當Hadoop集群在執行時,你可以使用瀏覽器訪問 http://localhost:50030/ ,如圖:
檢查結果是否輸出並存儲在HDFS目錄下的gutenberg-output中:
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls gutenberg-output
Found 1 items
/user/hadoop/gutenberg-output/part-00000 <r 1> 903193 2007-09-21 13:00
hadoop@ubuntu:/usr/local/hadoop$
可以使用dfs -cat 命令檢查文件目錄
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -cat gutenberg-output/part-00000
"(Lo)cra" 1
"1490 1
"1498," 1
"35" 1
"40," 1
"A 2
"AS-IS". 2
"A_ 1
"Absoluti 1
[...]
hadoop@ubuntu:/usr/local/hadoop$
注意比輸出,上面結果的(")符號不是Hadoop插入的。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
7. python和hadoop有什麼聯系
一個是編程語言,一個是大數據實現,這完散悶全是兩個不同領域的概念。我能想到的關系是這樣的:如果Hadoop提供對Python的介面的話,就可以用Python調用Hadoop實賀飢現大數據的一些功能。
hadoop 是 java 開發的,但並不是說開發 hadoop 就沖拍彎一定要使用 java.
8. 如何在Hadoop環境下搭建Python
搭建 Python 環境在 Hadoop 上的步驟如下:
安裝 Hadoop:在你的計算機上安裝 Hadoop。
安裝 Python:請確保你的計孫拿算機上已經安裝了 Python。
配置 Hadoop 環境:編輯 Hadoop 的配置文件,以確保 Hadoop 可以與 Python 配合使用。
安裝相關模塊:請安裝所需的 Python 模塊,以便在 Hadoop 環境下使用 Python。
測試灶行 Python 安裝:請運行一些測試腳本,以確保 Python 可以在 Hadoop 環境下正常工作。
這些步驟可以幫助你在 Hadoop 環境下搭建 Python。請注意,具體的步驟可能因 Hadoop 的版本和環境而異,請仔細查則辯搭看相關文檔。