Hadoop综合大作业
1.用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计。
我所用到短篇小说是傲慢与偏见,为了方便后续处理,对小说的特殊符号进行了处理,结果如图。
载入数据
创建查表
最终结果:
2.用Hive对爬虫大作业产生的csv文件进行数据分析,写一篇博客描述你的分析过程和分析结果。
因为我爬取的大作业中的内容全都是封装在一个json中的,无法单独取出来,所以我选择用之前校园网爬取的数据导出成csv格式,代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | # -*- coding: UTF-8 -*- # -*- coder: mzp -*- import requests from bs4 import BeautifulSoup import re from datetime import datetime import pandas def gzcc_content_info(content_url): content_info = {} resp = requests.get(content_url) resp.encoding = 'utf-8' soup = BeautifulSoup(resp.text, 'html.parser' ) match_str = { 'author' : '作者:(.*)\s+[审核]?' , 'examine' : '审核:(.*)\s+[来源]?' , 'source' : '来源:(.*)\s+[摄影]?' , \ 'photography' : '摄影:(.*)\s+[点击]' } remarks = soup.select( '.show-info' )[ 0 ].text for i in match_str: if re.match( '.*' + match_str[i], remarks): content_info[i] = re.search(match_str[i], remarks).group( 1 ).split( "\xa0" )[ 0 ] else : content_info[i] = " " time = re.search( '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}' , remarks).group() content_info[ 'time' ] = datetime.strptime(time, '%Y-%m-%d %H:%M:%S' ) #content_info['title'] = soup.select('.show-title')[0].text #content_info['url'] = content_url #content_info['content'] = soup.select('#content')[0].text # with open('test.txt', 'a', encoding='UTF-8') as story: # story.write(content_info['content']) return content_info def gzcc_list_page(page_url): page_news = [] res = requests.get(page_url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser' ) news_list = soup.select( '.news-list' )[ 0 ] news_point = news_list.select( 'li' ) for i in news_point: a = i.select( 'a' )[ 0 ][ 'href' ] page_news.append(gzcc_content_info(a)) return page_news all_news = [] url = 'http://news.gzcc.cn/html/xiaoyuanxinwen/' res = requests.get(url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser' ) n = int (soup.select( '#pages' )[ 0 ].select( "a" )[ - 2 ].text) all_news.extend(gzcc_list_page(url)) for i in range ( 2 , 5 ): # 这里改页数 all_news.extend(gzcc_list_page( 'http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html' . format (i))) pan = pandas.DataFrame(all_news) pan.to_csv( 'result9.csv' , index = False ) |
然后将这个csv复制黏贴到当地的local/bigdatacase/dataset下,然后新建一个pre_deal.sh然后再让它俩生成一个txt
接着就是就是将它上传到hdfs 的hadoop/biddata/dataset中。然后在创建一个database,外键表将这个txt的数据填到表里面。
因为时间处理得不好,类型不是date,所以标示的是null。
没有时间不能做出其他更好的数据分析,于是我分析了多少条数据。
结果是760条。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析