• Hadoop综合大作业


    adoop综合大作业 要求:

    1.用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计。 

    这次处理的文本是哈利波特之凤凰社英文长篇小说。

     

    图2-1 分析的文本截图

    操作:

    1.开启Hadoop

     

    图2-2 启动hadoop截图

    2.查询Hadoop开启情况

     

    图2-3 hadoop开启情况截图

    3. Hdfs上创建文件夹

     

    图2-4 创建文件夹截图

    4. 上传文件至hdfs

     

    图2-5 上传文件截图

    5.启动hive

     

    图2-6 启动hive截图

    6. 创建原始文档表

     

    图2-7 创建文档表截图

    7. 导入文件内容到表docs并查看

     

    图2-8 导入文件截图

    8. 进行词频统计,结果放在表word_count里

     

    图2-9 词频统计截图

    9.结果

     

    图2-10 部分结果截图

     分析说明

    从以上部分结果截图中可以看出,robes出现了65次,robe中文翻译是卢比,是哈利波特魔法世界的通用货币,统计发现robes出现了如此多次,说明在哈利波特世界中隐晦的表达了作者对于货币资本家的批判。

    2.用Hive对爬虫大作业产生的csv文件进行数据分析,写一篇博客描述你的分析过程和分析结果

     爬虫大作业源代码:

    import requests, re, pandas, time
    from bs4 import BeautifulSoup
    from datetime import datetime
    
    
    # 获取新闻细节
    def getNewsDetail(newsUrl):
        time.sleep(0.1)
        res = requests.get(newsUrl)
        res.encoding = 'gb2312'
        soupd = BeautifulSoup(res.text, 'html.parser')
        detail = {'title': soupd.select('#epContentLeft')[0].h1.text, 'newsUrl': newsUrl, 'time': datetime.strptime(
            re.search('(d{4}.d{2}.d{2}sd{2}.d{2}.d{2})', soupd.select('.post_time_source')[0].text).group(1),
            '%Y-%m-%d %H:%M:%S'), 'source': re.search('来源:(.*)', soupd.select('.post_time_source')[0].text).group(1),
                  'content': soupd.select('#endText')[0].text}
        return detail
    
    
    # 获取一页的新闻
    def getListPage(listUrl):
        res = requests.get(listUrl)
        res.encoding = "utf-8"
        soup = BeautifulSoup(res.text, 'html.parser')
        pagedetail = []  # 存储一页所有新闻的详情
        for news in soup.select('#news-flow-content')[0].select('li'):
            newsdetail = getNewsDetail(news.select('a')[0]['href'])  # 调用getNewsDetail()获取新闻详情
            pagedetail.append(newsdetail)
        return pagedetail
    
    
    pagedetail = getListPage('http://tech.163.com/it/')  # 获取首页新闻
    for i in range(2, 20):  # 因为网易新闻频道只存取20页新闻,直接设置20
        listUrl = 'http://tech.163.com/special/it_2016_%02d/' % i  # 填充新闻页,页面格式为两位数字字符
        pagedetail.extend(getListPage(listUrl))
    df = pandas.DataFrame(pagedetail)
    df.to_csv('news.csv')

    创建用于存放csv数据目录:

     

    把文件放入文件夹中

     查看文件中的数据:

    导入数据库表中

    查看数据:

  • 相关阅读:
    一个简单的开源PHP爬虫框架『Phpfetcher』
    OpenNI1.5获取华硕XtionProLive深度图和彩色图并用OpenCV显示
    【数字图像处理之(三)】用图像增强谈灰度变换
    Android 实现登录界面和功能实例
    MFC通过button控制编辑框是否显示系统时间
    springmvc+mybatis整合
    iOS获取当前城市
    Android之Wifi学习(1)
    实测:Windows 8.1 (Windows Blue) 第三方桌面应用无法支持Retina屏,效果与Windows8.0似无差别。
    java 读取不同的配置文件
  • 原文地址:https://www.cnblogs.com/171-LAN/p/9090481.html
Copyright © 2020-2023  润新知