PySpark——开启大数据分析师之路
导读
近日由于工作需要,突击学了一下PySpark的简单应用。现分享其安装搭建过程和简单功能介绍。
01 Spark简介
了解PySpark之前首先要介绍Spark。Spark,英文原义为火花或者星火,但这里并非此意,或者说它就没有明确的含义。实际上"名不副实"这件事在大数据生态圈各个组件中是很常见的,例如Hive(蜂巢),从名字中很难理解它为什么会是一个数仓,难道仅仅是因为都可用于存储?
当然,讨论spark名字的含义并无意义,我们需要知道的是Spark是大数据生态圈中的一个分布式快速计算引擎,这其中包含了三层含义:分布式、快速、计算引擎。分布式意味着它支持多节点并行计算和备份;而快速则是相对Hadoop中的MapReduce计算框架而言,官网号称速度差距是100倍;计算引擎则描述了Spark在大数据生态中定位:计算。
存储和计算是大数据中的两大核心功能。
大数据框架,一般离不开Java,Spark也不例外。不过Spark并非是用Java来写的,而是用Scala语言。但考虑Scala语言建立在Java基础之上,实际上Scala是可以直接调用Java的包的,所以从这点来讲Spark归根结底还是要依赖Java,自然环境依赖也需要JDK。也正是基于这些原因,Spark的主要开发语言就是Java和Scala。然后随着数据科学的日益火爆,Python和R语言也日益流行起来,所以Spark目前支持这4种语言。当Spark遇到Python就变成了PySpark,这也是我们今天介绍的主角。
Spark目前最新版本是3.0,于今年6月16日正式发布release版。
02 PySpark安装
一般而言,进行大数据开发或算法分析需要依赖Linux环境和分布式集群,但PySpark支持local模式,即在本地单机运行。所以,如果为了在个人PC上练习PySpark语法功能或者调试代码时,是完全可以在自己电脑上搭建spark环境的,更重要的windows系统也是可以的!
实际上,安装PySpark非常简单,仅需像安装其他第三方Python包一样执行相应pip命令即可,期间pip会自动检测并补全相应的工具依赖,如py4j,numpy和pandas等。这里py4j实际上是python for java的意思,是Python和java之间互调的接口,所以除了pip命令安装PySpark之外还需配置系统的jdk环境,一般仍然是安装经典的JDK8版本,并检查是否将java配置到系统环境变量。相应的检验方法是在cmd窗口中键入java -version,当命令可以执行并显示正确的版本时,说明系统已完成java环境搭建。这是为PySpark运行提供了基础。
所以总结一下,安装pyspark环境仅需执行两个步骤:
安装JDK8,并检查系统配备java环境变量
Pip命令安装pyspark包
顺利完成以上两个步骤后,在jupyter中执行如下简单代码,检验下PySpark环境是否正确搭建。
from pyspark import SparkContext
sc = SparkContext()
rdd = sc.parallelize([1, 2])
rdd.getNumPartitions()
# 输出4
03 PySpark主要功能介绍
Spark作为分布式计算引擎,主要提供了4大核心组件,它们之间的关系如下图所示,其中GraphX在PySpark中暂不支持。
RDD(Resilient Distributed DataSet,弹性分布式数据集)是Spark中的核心数据结构(Spark core),是完成分布式任务调度的关键,从名字缩写中可以看出其有3大特性:弹性,意味着大小可变、分区数量可变;分布式,表示支持多节点并行处理;数据集,说明这是一个特殊的数据结构。
进一步的,Spark中的其他组件依赖于RDD,例如:
SQL组件中的核心数据结构是DataFrame,而DataFrame是对rdd的进一步封装。值得一提的是这里的DataFrame实际上和Pandas或者R语言的data.frame其实是很为相近的,语法、功能、接口都有很多共同之处,但实际上这里的DataFrame支持的接口要少的多,一定程度上功能相对受限;
Streaming组件中的核心数据结构是Dstream,即离散流(discrete stream),本质就是一个一个的rdd;
PySpark中目前存在两个机器学习组件ML和MLlib,前者是推荐的机器学习库,支持的学习算法更多,基于SQL中DataFrame数据结构,而后者则是基于原生的RDD数据结构,包含的学习算法也较少
了解了这些,PySpark的核心功能和学习重点相信应该较为了然。后续将不定期推出SQL和ML两大组件的系列要点分享。
end
近期八大热门:发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片!
盗墓热再起!我爬取了6万条《重启之极海听雷》的评论,发现了这些秘密
用Python一键生成炫酷九宫格图片,火了朋友圈
菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记
Github获8300星!用Python开发的一个命令行的网易云音乐
一道Python面试题,硬是没憋出来,最后憋出一身汗!卧槽!Pdf转Word用Python轻松搞定!教你6招,不错的Python代码技巧!
菜鸟编程大本营,现已正式上线!
每个程序员都是从菜鸟开始成长起来的,没有人一开始就是程序员高手。菜鸟编程大本营,专注于分享小白开始学习编程的技巧,让菜鸟爱上编程,进阶成为高手!感兴趣的小伙伴可以关注一下哈!
点这里,领取新手福利
PySpark——开启大数据分析师之路相关推荐
- 大学开启大数据开发之路
去年便下的决定,走编程这条路,也坚持了一年多了,发现有很多东西要学到,最近学了不少技术,不过还不能熟练的掌握所学到的技术,比如Java基础知识.python基础.Linux操作系统基础知识.SQL语句 ...
- 大数据学习之路(转载)
#大数据学习之路(转载) 博文地址https://blog.csdn.net/zys_1997/article/details/78358992 看到一个博主写的大数据学习路线,看了比较心动,想着自己 ...
- 大数据分析师工程师入门6-HIVE进阶
本文为<大数据分析师入门课程>系列的第6篇,主要讲解大数据分析师在工作中需要用到的HIVE进阶知识,主要包括: 窗口函数 数据倾斜 性能调优 explain 替换引擎 那,就直接开讲了. ...
- 大数据分析师入门6-HIVE进阶
本文为<大数据分析师入门课程>系列的第6篇,主要讲解大数据分析师在工作中需要用到的HIVE进阶知识,主要包括: 窗口函数 数据倾斜 性能调优 explain 替换引擎 那,就直接开讲了. ...
- 大数据分析师·人才培养·高薪起航
一.大数据分析师时代背景 随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长.动辄达到数百TB甚至数十至数百PB规模的行业/企业大数据已远远超出了现 ...
- 30岁转行做大数据分析师可行性高吗?
30岁转行做大数据分析师为时不晚,但是我不建议大家盲目转行.为什么这么说?30岁正值人生的关键时期,如果工作正出于上升期或者比较稳定的状态,一般不会轻易转行,因为转行的风险比较大.当然如果你已经下定决 ...
- 大数据分析师面试求职攻略
面试大数据分析前焦虑怎么办? 如果你没有得到面试怎么办? 大数据分析师面试过程尴尬怎么办? 如何准备大数据分析师面试? 大数据分析师的面试技巧有哪些? 大数据分析师的面试注意事项有哪些? 如何在大数据 ...
- 大数据分析师,比数据分析师厉害在哪
最近看到个段子: 你是个数据分析师,平时主要都用 Python 的 Pandas 处理分析数据,一天,上司甩来一个文件让你清洗好顺便提取些数据,下班前给到他. 你一看文件有几十个 GB 大,有点傻眼, ...
- 资深讲师分享大数据分析师职业规划
最近有不少同学向咨询有关大数据分析职业发展的问题,由此可见,随着大数据分析的飞速发展,大数据分析职业也成为很多同学关注的目标.不要急,这就给大家介绍大数据分析的职业发展. 一.为什么要做大数据分析师 ...
最新文章
- 菜鸟教程:SQL 通用数据类型
- python登录微信自动发送消息和绘画好友男女比例
- 素数环-dfs回溯+二维数组记录(c++实现)
- UE4 查看打包文件内容
- 制作Docker镜像的两种方式
- [Python教程] 一只乌龟其实也很酷 (1、动起来)
- linux pn,Linux环境变量设置--总结
- C语言printf()输出格式大全
- C#软件注册与注册机
- 钉钉手机版免密自动登陆SuiteCRM
- 计算机 随机分组的方法,临床试验中的随机分组方法.pdf
- Linux遇到删除不掉的文件或者文件夹解决办法
- 非常详细的STM32 CAN通信的贴子,从总线细节到编程实现
- 【论文下饭】Temporal Graph Network for Deep Learning on Dynamic Graphs
- 自己搭建开源数据统计报表系统
- floor()函数与round()函数
- html如何设置展开全文,Js实现点击查看全文(纯手工代码)
- ADB安装电视应用市场
- python对参数二值化处理_OpenCV自适应阀值二值化表格检测方法(python版)
- 怎么恢复已删除的全部数据,不小心删除的数据怎么恢复,删除的文件还能找回吗