企业宣传,产品推广,广告招商,广告投放联系seowdb

成功了三大数据剖析工具的大一统 这个库 Pandas和Spark SQL

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!但是,理想很丰满事实则已然:时期踩坑之深之广,冷暖自知啊……

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender