spark是目前大数据领域的核心技术栈,许多从事数据相关工做的小伙伴都想驯服它,变成"驯龙高手",以便可以驾驭成百上千台机器组成的集群之龙来驰骋于大数据之海。
html
但大部分小伙伴都没能成功作到这一点。有一部分小伙伴纠结在究竟是学pyspark仍是spark-scala上面迟迟未能出征,还有至关一部分倒在了开始的环境配置上,还有一些在几十几百个函数的用法中迷失了方向,还有少部分同窗虽然掌握了一些简单用法,可是没有掌握性能优化技巧,一旦遇到真正复杂的大数据就毫无办法。java
最近个人好友"算法美食屋"公众号的做者云哥开源了一个pyspark教程:《10天吃掉那只pyspark》,给有志于成为大数据"驯龙高手"的小伙伴带来了福音,如下是这个教程的目录,简直就是驯龙秘笈有木有😋😋 ?
python
感兴趣的小伙伴能够扫码下方二维码,关注公众号:算法美食屋。在后台回复关键字:pyspark,获取项目《eat pyspark in 10 days》github地址。git
如下是这个教程的详细介绍。
github
一,pyspark 🍎 or spark-scala 🔥 ?
pyspark强于分析,spark-scala强于工程。web
若是应用场景有很是高的性能需求,应该选择spark-scala.算法
若是应用场景有很是多的可视化和机器学习算法需求,推荐使用pyspark,能够更好地和python中的相关库配合使用。sql
此外spark-scala支持spark graphx图计算模块,而pyspark是不支持的。性能优化
pyspark学习曲线平缓,spark-scala学习曲线陡峭。微信
从学习成原本说,spark-scala学习曲线陡峭,不只由于scala是一门困难的语言,更加由于在前方的道路上会有无尽的环境配置痛苦等待着读者。
而pyspark学习成本相对较低,环境配置相对容易。从学习成原本说,若是说pyspark的学习成本是3,那么spark-scala的学习成本大概是9。
若是读者有较强的学习能力和充分的学习时间,建议选择spark-scala,可以解锁spark的所有技能,并得到最优性能,这也是工业界最广泛使用spark的方式。
若是读者学习时间有限,并对Python情有独钟,建议选择pyspark。pyspark在工业界的使用目前也愈来愈广泛。
二,本书📚 面向读者🤗
本书假定读者具备基础的的Python编码能力,熟悉Python中numpy, pandas库的基本用法。
而且假定读者具备必定的SQL使用经验,熟悉select,join,group by等sql语法。
三,本书写做风格🍉
本书是一本对人类用户极其友善的pyspark入门工具书,Don't let me think是本书的最高追求。
本书主要是在参考spark官方文档,并结合做者学习使用经验基础上整理总结写成的。
不一样于Spark官方文档的繁冗断码,本书在篇章结构和范例选取上作了大量的优化,在用户友好度方面更胜一筹。
本书按照内容难易程度、读者检索习惯和spark自身的层次结构设计内容,按部就班,层次清晰,方便按照功能查找相应范例。
本书在范例设计上尽量简约化和结构化,加强范例易读性和通用性,大部分代码片断在实践中可即取即用。
若是说经过学习spark官方文档掌握pyspark的难度大概是5,那么经过本书学习掌握pyspark的难度应该大概是2.
仅如下图对比spark官方文档与本书《10天吃掉那只pyspark》的差别。
四,本书学习方案 ⏰
1,学习计划
本书是做者利用工做之余大概1个月写成的,大部分读者应该在10天能够彻底学会。
预计天天花费的学习时间在30分钟到2个小时之间。
固然,本书也很是适合做为pyspark的工具手册在工程落地时做为范例库参考。
2,学习环境
本书所有源码在jupyter中编写测试经过,建议经过git克隆到本地,并在jupyter中交互式运行学习。
为了直接可以在jupyter中打开markdown文件,建议安装jupytext,将markdown转换成ipynb文件。
为简单起见,本书按照以下2个步骤配置单机版spark3.0.1环境进行练习。
#step1: 安装java8#jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html#java安装教程:https://www.runoob.com/java/java-environment-setup.html#step2: 安装pyspark,findsparkpip install -i https://pypi.tuna.tsinghua.edu.cn/simple pysparkpip install findspark
此外,也能够在和鲸社区的云端notebook中直接运行pyspark,没有任何环境配置痛苦。详情参考该项目的readme文档。
import findspark
#指定spark_home,指定python路径
spark_home = "/Users/liangyun/anaconda3/lib/python3.7/site-packages/pyspark"
python_path = "/Users/liangyun/anaconda3/bin/python"
findspark.init(spark_home,python_path)
import pyspark
from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("test").setMaster("local[4]")
sc = SparkContext(conf=conf)
print("spark version:",pyspark.__version__)
rdd = sc.parallelize(["hello","spark"])
print(rdd.reduce(lambda x,y:x+' '+y))
spark version: 3.0.1
hello spark
五,鼓励和联系做者
感兴趣的小伙伴能够扫码下方二维码,关注公众号:算法美食屋,后台回复关键字:pyspark,获取项目《eat pyspark in 10 days》github地址。
也能够在公众号后台回复关键字:spark加群,加入spark和大数据读者交流群和你们讨论。
本文分享自微信公众号 - 视学算法(visualAlgorithm)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。