pyspark(二)——pyspark的语法

pyspark(二)——pyspark的语法

原创 Starry ChallengeHub 公众号

pyspark(二)——pyspark的语法 

        这是pyspark学习的第二章,上节中我们已经介绍了pyspark的安装与简单的语法,本篇文章也是pyspark语法的介绍,给大家更加详细的介绍pyspark的数据处理。废话不多说,现在就开始吧。

一:聚合操作

一:groupby

        groupby就是分类聚合操作,在结构化的数据处理中是非常常见的操作,那么在pyspark中是怎么操作的呢?

图片

    分组后排序,根据每组中数据的个数进行排序:

图片

    当然除了count之外还有max,min,sum等操作

图片

    采用alias将avg('I2')重命名。

图片

二:collect

    collect中有collect_list和collect_set,前后就是将某个字段的数据形成一个list,后者就是形成一个set。

    图片

    如果要将...后面的显示清楚,可以在show()中输入truncate =False,collect_set(I8)的数据是去重后的。

图片

    采用collect_list表示不去重。

图片

 

二:其它操作

一:自定义函数(UDF)

        UDF就是用户自己定义函数,下面就是一个简单的例子:

图片

        与Python UDF相比,Pandas UDF速度更快,主要是因为前后是按行处理,后者是按照块处理,能够更好地利用分布式的特性。使用方法和Pandas和UDF一样,如下所示。

图片

        但是,意外的是,出现了如下的bug,按照提示安装好库之后。

图片

        于是又有了新的bug,查询了一些原因之后,发现是没有安装hadoop的原因。于是安装hadoop,具体的安装链接如下,注意的是安装3.0.0 必须要用Java 8。https://blog.csdn.net/songhaifengshuaige/article/details/79575308(安装过程中如果出现了什么疑问可以直接咨询。)

二:Join

        join操作就是表连接,在sql,pandas里面相信大家也都见识过了,这里我们来介绍下pyspark中的用法。

首先创建一个新的表:

图片

然后使用join函数就可以啦。

图片

三:Pivoting

        熟悉数据分析的人肯定会经常用到透视表,在pyspark中也可以做透视表,具体的方法如下所示:

图片

四:Window Functions

        有时候我们会需要一些分区操作,或者一些Rank操作,比如计算一列的Rank,或者分类之后计算Rank等。接下来我们就介绍这类操作。

图片

        上图的操作是根据I2倒排,然后根据排序位次生成一个Rank字段。

图片

        与上文的相比,这里通过I8进行分区,然后再对I2进行排序,最后生成排序的结果。

图片

        我们知道除了十二星座外,还有NULL,因此是13给分区,每个分区都有一个rank=1的数据。有时候我们需要选取每个分区的Top数据,因此可以通过这种方式选取。

图片

 

        这次有关于Pyspark语法的操作就到这里结束了,下节内容是Pyspark流式数据处理(Spark Structured  Streaming)。敬请期待。

        欢迎任何对数据分析,数据挖掘的各位加入QQ群一起学习讨论。(关注公众号:ChallengeHub一起学习)

 

图片

 

        如果群号过期,可添加以下的微信号私聊。

图片

参考资料:learn pyspark

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值