IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> pyspark入门案例??pyspark处理log日志并实现简单热门推荐??(建议收藏) -> 正文阅读

[大数据]pyspark入门案例??pyspark处理log日志并实现简单热门推荐??(建议收藏)

???写作不易请多多点赞评论支持博主??

1、目的

"定时处理用户搜索日志,统计用户搜索词"

2、期望结果

"当鼠标下拉点入搜索栏后显示搜索热词统计结果"

?使用spring+springmvc+mysql+bootstarp实现的学生就业案例~(教学需要大佬勿喷?

?3、环境要求

  • anaconda python3.6
  • jdk1.8
  • spark-2.4.7-bin-hadoop2.7
  • scala-2.13.3
  • hadoop-2.8.5

安装教程可参考:http://t.zoukankan.com/yfb918-p-10978856.html

百度网盘安装包:https://pan.baidu.com/s/1AI1kVeXb_lJ1Z-CWagT5Yg(spark+hadoop+scala)
提取码:a8uf

4、代码实现

日志格式:日志+用户+搜索词

log.log

2021-05-04_12:11:48 [INFO] 201012109001:百度
2021-05-04_12:12:46 [INFO] 201012109001:阿里
2021-05-04_12:12:47 [INFO] 201012109001:百度
2021-05-04_12:12:48 [INFO] 201012109001:北京
2021-05-04_12:13:49 [INFO] 201012109001:互联网
2021-05-04_12:13:49 [INFO] 201012109002:互联网
2021-05-04_12:13:49 [INFO] 201012109002:百度

?注意:需要把该内容放在log.log文件中并与处理程序存放在相同位置下

import findspark
findspark.init()
from pyspark import SparkContext ,SparkConf
import json
"""
定时器
"""
from threading import Timer
import datetime
def sparkTimert():
    print('TimeNow:%s' % (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
    res = getData()
    saveJson(res)
    t = Timer(120, sparkTimert)
    t.start()

"""
spark数据处理
"""
def getData():
	conf=SparkConf().setAppName("Project1").setMaster("local[4]")
	sc = SparkContext(conf=conf)
	lines = sc.textFile("log.log")
	"""
	热搜实现
	"""
    # 过滤log为info的数据,按照空格将字符串切割存储在数组中,取数组中第三个数据按照分号分割取第二个数据并使用countByValue进行统计个数
	data = lines.filter(lambda s: "INFO" in s).map(lambda s: s.split(" ")[2].split(":")[1]).countByValue()
	sc.stop()
	return {i[0]:i[1] for i in sorted(data.items(), key=lambda d: d[1],reverse=True)[:3]}
"""
保存热搜json
"""
def saveJson(data):
	filename='data.json'
	with open(filename,'w') as file_obj:
	    json.dump(data,file_obj)

# getData()
if __name__ == '__main__':
    sparkTimert()

?注意:确保各个环境已安装成功

统计结果

data.json

{"百度": 6, "互联网": 2, "阿里": 1}

???写作不易请多多点赞评论支持博主??

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:48:29  更:2021-09-08 10:49:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:50:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码