导读

近日由于工作需要,突击学了一下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——开启大数据分析师之路相关推荐

  1. 大学开启大数据开发之路

    去年便下的决定,走编程这条路,也坚持了一年多了,发现有很多东西要学到,最近学了不少技术,不过还不能熟练的掌握所学到的技术,比如Java基础知识.python基础.Linux操作系统基础知识.SQL语句 ...

  2. 大数据学习之路(转载)

    #大数据学习之路(转载) 博文地址https://blog.csdn.net/zys_1997/article/details/78358992 看到一个博主写的大数据学习路线,看了比较心动,想着自己 ...

  3. 大数据分析师工程师入门6-HIVE进阶

    本文为<大数据分析师入门课程>系列的第6篇,主要讲解大数据分析师在工作中需要用到的HIVE进阶知识,主要包括: 窗口函数 数据倾斜 性能调优 explain 替换引擎 那,就直接开讲了. ...

  4. 大数据分析师入门6-HIVE进阶

    本文为<大数据分析师入门课程>系列的第6篇,主要讲解大数据分析师在工作中需要用到的HIVE进阶知识,主要包括: 窗口函数 数据倾斜 性能调优 explain 替换引擎 那,就直接开讲了. ...

  5. 大数据分析师·人才培养·高薪起航

    一.大数据分析师时代背景 随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长.动辄达到数百TB甚至数十至数百PB规模的行业/企业大数据已远远超出了现 ...

  6. 30岁转行做大数据分析师可行性高吗?

    30岁转行做大数据分析师为时不晚,但是我不建议大家盲目转行.为什么这么说?30岁正值人生的关键时期,如果工作正出于上升期或者比较稳定的状态,一般不会轻易转行,因为转行的风险比较大.当然如果你已经下定决 ...

  7. 大数据分析师面试求职攻略

    面试大数据分析前焦虑怎么办? 如果你没有得到面试怎么办? 大数据分析师面试过程尴尬怎么办? 如何准备大数据分析师面试? 大数据分析师的面试技巧有哪些? 大数据分析师的面试注意事项有哪些? 如何在大数据 ...

  8. 大数据分析师,比数据分析师厉害在哪

    最近看到个段子: 你是个数据分析师,平时主要都用 Python 的 Pandas 处理分析数据,一天,上司甩来一个文件让你清洗好顺便提取些数据,下班前给到他. 你一看文件有几十个 GB 大,有点傻眼, ...

  9. 资深讲师分享大数据分析师职业规划

    最近有不少同学向咨询有关大数据分析职业发展的问题,由此可见,随着大数据分析的飞速发展,大数据分析职业也成为很多同学关注的目标.不要急,这就给大家介绍大数据分析的职业发展. 一.为什么要做大数据分析师 ...

最新文章

  1. 菜鸟教程:SQL 通用数据类型
  2. python登录微信自动发送消息和绘画好友男女比例
  3. 素数环-dfs回溯+二维数组记录(c++实现)
  4. UE4 查看打包文件内容
  5. 制作Docker镜像的两种方式
  6. [Python教程] 一只乌龟其实也很酷 (1、动起来)
  7. linux pn,Linux环境变量设置--总结
  8. C语言printf()输出格式大全
  9. C#软件注册与注册机
  10. 钉钉手机版免密自动登陆SuiteCRM
  11. 计算机 随机分组的方法,临床试验中的随机分组方法.pdf
  12. Linux遇到删除不掉的文件或者文件夹解决办法
  13. 非常详细的STM32 CAN通信的贴子,从总线细节到编程实现
  14. 【论文下饭】Temporal Graph Network for Deep Learning on Dynamic Graphs
  15. 自己搭建开源数据统计报表系统
  16. floor()函数与round()函数
  17. html如何设置展开全文,Js实现点击查看全文(纯手工代码)
  18. ADB安装电视应用市场
  19. python对参数二值化处理_OpenCV自适应阀值二值化表格检测方法(python版)
  20. 怎么恢复已删除的全部数据,不小心删除的数据怎么恢复,删除的文件还能找回吗

热门文章

  1. gateway官网文档解读(六) 汇总
  2. 影视网站导航PHP源码
  3. Python读书笔记-基础篇-1.万丈高楼平地起
  4. Ubuntu 18.04 LTS (Bionic Beaver) 已经发布附官网下载链接
  5. wxWidgets GUI 编程介绍
  6. [siggraph13]《巫师3》角色渲染
  7. blender 鼠标滑轮配合快捷键
  8. Android-事件分发机制(源码层面)
  9. ios 全屏返回手势
  10. oppo三年Android更新,OPPO Find X3系列将提供3年系统更新支持