首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PySaprk之DataFrame

Hello,今天为大家分享一下PySpark中关于DataFrame的常用操作。

DataFrame相比大家都知道,是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表,如果大家熟悉python或者R语言中的DataFrame那么这个DataFrame就很好理解,因为spark中的DataFrame就是基于这哥们来的

曾今说过,每个概念出来都是有它的必然性的,我们一起来看看为什么需要DataFrame呢,首先一起看看python与RDD之间的通信

那么诱人就会问,Spark Sql引擎为什么那么快呢,其实这是因为另一个原因Catalyst优化器(Tungsten项目),大家若感兴趣,可以百度下这个优化器,而我们今天要说的是利用DataFrame多pysaprk进行加速,DataFrame和Catalyst优化器的意义在于和非优化的RDD查询比较时增加PySpark的性能,这种查询性能的提升源于降低了Python和JVM之间的通信开销。

接下来我们就一起看看到底怎么使用

创建DataFrame

如上代码,我们就创建了一个DataFrame和一张临时表,本人环境是将pysaprk直接运行在了jupyter上,此处请注意~

接下来我们利用DataFrame API进行一些基础查询

还可以利用SQL进行查询

也可以执行筛选语句

DataFrame与RDD的交互操作

在建立DataFrame和运行查询的过程中,DataFrame的模式是自动定义的,对象是通过K/V来作为行类的**kwargs构建,然后spark Sql将行对象的RDD转为一个DataFrame,在DataFrame中建就是列,数据类型通过采样数据来判断。

打印模式

通过编程方式指定模式

这些呢就是DataFrame的一些基础操作,大家感兴趣可以多查查这方面的资料,百度真的很多,还有就是环境问题,因为我直接在jupyter运行的是pyspark,所以上述代码能成功,如果您的环境不是这样,你得需要重新构建,如下:

ok,今天的分享就到此结束,下期在见~~~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190519A02K4100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券