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 的版本和环境而异,请仔细查则辩搭看相关文档。