【干货】大数据和人工智能.pdf
spark是目前大数据领域的核心技术栈,许多从事数据相关工作的小伙伴都想驯服它,变成"驯龙高手",以便能够驾驭成百上千台机器组成的集群之龙来驰骋于大数据之海。
但大部分小伙伴都没能成功做到这一点。有一部分小伙伴纠结在到底是学pyspark还是spark-scala上面迟迟未能出征,还有相当一部分倒在了开始的环境配置上,还有一些在几十几百个函数的用法中迷失了方向,还有少部分同学虽然掌握了一些简单用法,但是没有掌握性能优化技巧,一旦遇到真正复杂的大数据就毫无办法。
最近我的好友"算法美食屋"公众号的作者云哥开源了一个pyspark教程:《10天吃掉那只pyspark》,给有志于成为大数据"驯龙高手"的小伙伴带来了福音,以下是这个教程的目录,简直就是驯龙秘笈有木有😋😋 ?
感兴趣的小伙伴可以扫码下方二维码,关注公众号:算法美食屋。在后台回复关键字:pyspark,获取项目《eat pyspark in 10 days》github地址。
以下是这个教程的详细介绍。
一,pyspark 🍎 or spark-scala 🔥 ?
pyspark强于分析,spark-scala强于工程。
如果应用场景有非常高的性能需求,应该选择spark-scala.
如果应用场景有非常多的可视化和机器学习算法需求,推荐使用pyspark,可以更好地和python中的相关库配合使用。
此外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,findspark
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark
pip 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源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源许可证的选择
原文:Open source licenses: What, which, and why 作者:JIM SALTER,编译:御坂弟弟 大多数人现在至少听说过开源软件,甚至与其关系密切。同时,开源软件的知名人士对它的名称争论不休,从免费软件到自由软件,再到开源软件,以及上述各种可能的组合。但有一点是每个专家都同意的,那就是如果它没有明确的许可证,它就不是开源软件(或其他什么)。 你不能在没有许可证的情况下公开一堆源代码,然后说 "无论如何,它已经放在那了,任何人都可以得到它"。在世界上大多数国家的版权法的运作方式中,没有明确声明许可证的免费提供的代码,其版权是作者的,作者保留所有权利。这意味着使用未经授权的代码是不安全的,无论是否出版。如果你开始使用它,没有什么可以阻止作者来找你并起诉版权费。 唯一能让你的代码真正成为开源和自由使用的方法就是给它附加一个许可证。最好的办法是在每个文件的头部加上一个注释,写上一个著名的许可证的名称和版本,并在项目的根目录下附上一份完整的许可证副本,命名为 LICENSE 或 LICENSE.TXT。当然,这就引出了一个问题,即使用哪种许可证?为什么?...
- 下一篇
现在最好玩的AI竟然来自一个家谱公司???
点击上方“视学算法”,选择加"星标"或“置顶” 重磅干货,第一时间送达 鱼羊 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 哈利波特世界里,能让报纸上的照片动起来的魔法,现在麻瓜们已经掌握得越来越熟练了。 看,16岁的图灵正穿越时空朝你眨眼、微笑,神态十分自然。 原本在老照片中沉默的美人,当年眼波流转、巧笑倩兮的模样,也重新清晰呈现。 而这样的全家福,是否唤醒了一段有关过往的回忆? 这就是这个周末国外社交媒体上最火的AI应用,呈现在人们眼前的“魔法”。 连李开复本人都忍不住玩了一把…… 无需掌握什么技术,只要在MyHeritage这个网站上上传一张老照片,10-20秒之后,AI就会自动帮你赋予照片“生命”。 甚至是雕塑也一样OK: △图源:twitter@FlintDibble 如此自然的效果,让不少网友感叹:这非常哈利波特。 任何足够先进的技术都无法与魔法区分开来。 神奇的是,这是一个在线家谱网站… 所以,这个当红炸子鸡MyHeritage是什么来头,咋就突然掀起热潮了? 当你点进这个网站,你会发现它的本职其实是一个在线家谱平台…… 真的能帮你方便整理家谱的那一种……你...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- 2048小游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8