使用PySpark处理数据

使用PySpark处理数据


一、数据准备

本文主要是做为一个PySpark的入手实例来做,数据来源网络。主要用到两个数据文件:action.txt,document.txt。下表为action.txt,数据格式:userid-docid-behaivor-time-ip,即:用户编码-文档编码-行为-日期-IP地址
在这里插入图片描述
下表为document.txt,数据格式:docid-channelname-source-keyword:score,即:文档编码-类别(大类)-主题(细类)-关键词:权重
在这里插入图片描述

二、用户点击率

用户点击率即为action.txt文件中每个用户behaivor列中1的数量除以0的数量。

1.创建SparkSession对象

在这里插入图片描述

2.读取拆分数据

将数据根据‘~’拆分,获取userid和behavior两列
在这里插入图片描述

3.统计用户的各类行为数

在这里插入图片描述

4.转为DataFrame格式

将userid,behavior和数量取出作为3列,并转为DataFrame格式
在这里插入图片描述

5.behavior列处理

根据userId进行分组,将behavior列数据进行旋转作为列标数值为cnt。并将behavior的0和1替换为“browse”和”click”。
在这里插入图片描述

6.填充缺失值

在这里插入图片描述

7.将计算的数据作为新列添加到数据

在这里插入图片描述

8.保存、关闭

将最后处理的数据保存到本地,关闭SparkSession
在这里插入图片描述
最后保存到本地的数据为多个文件,每个文件的格式如下:
在这里插入图片描述

三、用户点击率

使用主题(细类)给用户打标签

1.读取数据

读取docunment.txt,获取docid、source两列,即文档编码和主题(细类)两列
在这里插入图片描述
在这里插入图片描述

2.创建两个DataFrame的临时视图

在这里插入图片描述

3.进行关联查询

在这里插入图片描述

4.保存、关闭

将最后处理的数据保存到本地,关闭SparkSession
在这里插入图片描述
导出后的数据如下:
在这里插入图片描述

踩雷点

1、 代码开发时,可以每个操作跟一个action,方便查看数据,跑批的时候不需要每个都跟,只需要最后一个action,否则会给机器增加很多工作量。
2、 中间过程生成的DataFrame必须先建立临时视图,后面才能使用,否则会报错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值