01 pyspark简介及环境搭建
pyspark是python中的一个第三方库,相当于ApacheSpark组件的python化版本(Spark允许Java Scala Python和R 4种编程言语接口),须要依赖py4j库(即python forjava的缩略词),而恰好是这个库成功了将python和java的互联,所以pyspark库虽然体积很大,大概226M,但实践上绝大局部都是spark中的原生jar包,占据了217M,体积占比高达96%。
由于Spark是基于Scala言语成功的大数据组件,而Scala言语又是运转在JVM虚构机上的,所以Spark人造依赖JDK,截止目前为止JDK8依然可用,而且简直是装置各大数据组件时的首选。所以搭建pyspark环境首先须要装置JDK8,然后这里引见两种方式搭建pyspark运转环境:
1)pip install pyspark+恣意pythonIDE
pyspark作为python的一个第三方库,人造可以经过pip包治理工具启动装置,所以仅需执行如下命令即可成功智能装置:
为了保证更快的下载速度,可以更改pip源为国际镜像,详细设置方式可参考历史文章:是时刻总结一波Python环境搭建疑问了
2)Spark官方下载指定tar包解压
与其余大数据组件不同,Spark实践上提供了windows系统下良好的兼容运转环境,而且方式也十分繁难。访问spark官方,决定指标版本(最新版本是spark3.1.1版本),点击链接即可跳转到下载页面,不出异常的话会智能介绍国际镜像下载地址,所以下载速度是很有保证的。
下载终了后即获取了一个tgz格局的文件,移动至适当目录间接解压即可,然后进入bin目录,决定关上pyspark.cmd,即会智能创立一个pyspark的shell运转环境,整个环节十分繁难,无需任何设置。
进入pyspark环境,已创立好sc和spark两个入口变量
两种pyspark环境搭建方式对比:
总体来看,两种方式各无利害,假设是启动正式的开发和数据处置流程,团体偏差于决定进入第一种pyspark环境;而关于繁难的配置测试,则会优先经常使用pyspark.cmd环境。
02三大数据剖析工具灵敏切换
在日常上班中,咱们经常会经常使用多种工具来成功不同的数据剖析需求,比如团体用的最多的还是SQL、Pandas和Spark3大工具,无非就是青睐SQL的语法繁复易用、Pandas的API丰盛多样以及Spark的散布式大数据处置才干,但同时可怜的是这几个工具也都有各自的弱点,比如SQL仅能用于处置一些繁难的需求,复杂的逻辑成功不太或者;Pandas只能单机运转、大数据处置乏力;Spark接口又相对比拟有限,且有些算子写法会比拟复杂。
懈怠是人类提高的阶梯,这个情理在数据处置工具的决定上也有所表现。
宿愿能在多种工具间灵敏切换、自在组合决定,人造是最朴(偷)素(懒)的想法,所幸pyspark刚好能够满足这一需求!以SQL中的数据表、pandas中的DataFrame和spark中的DataFrame三种数据结构为对象,依赖如下几个接口可成功数据在3种工具间的恣意切换:
当然,pandas人造也可以经过pd.read_sql和df.to_sql成功pandas与数据库表的序列化与反序列化,但这里关键是指在内存中的数据结构的恣意切换。
举个小例子:
1)spark创立一个DataFrame
2)spark.DataFrame转换为pd.DataFrame
3)pd.DataFrame转换为spark.DataFrame
4)spark.DataFrame注册暂时数据表并执行SQL查问语句
畅想一下,可以在三种数据剖析工具间恣意切换经常使用了,比如在大数据阶段用Spark,在数据过滤后再用Pandas的丰盛API,偶然再来几句SQL!但是,理想很丰满事实则已然:时期踩坑之深之广,冷暖自知啊……