• Hadoop综合大作业


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

    • 启动hadoop
    • Hdfs上创建文件夹
    • 上传文件至hdfs
    •   准备文件song.txt:
    •  上传到hdfs/data文件中
    • 启动Hive
    • 创建原始文档表
    • 导入文件内容到表docs并查看

    • 词频统计

    • 查看结果

    • 2.用Hive对爬虫大作业产生的csv文件进行数据分析,写一篇博客描述你的分析过程和分析结果。
    • # coding=utf-8 
      import urllib 
      import urllib2 
      import cookielib 
      import re 
      import csv 
      import sys 

      class Pyw(): 
      #初始化数据 
      def __init__(self): 
      #登录的Url地址 
      self.LoginUrl="http://v.pyw.cn/login/check" 
      #所要获取的Url地址 
      self.PageUrl="http://v.pyw.cn/Data/accountdetail/%s" 
      # 传输的数据:用户名、密码、是否记住用户名 
      self.PostData = urllib.urlencode({ 
      "username": "15880xxxxxx", 
      "password": "a123456", 
      "remember": "1" 
      }) 
      #第几笔记录 
      self.PageIndex=0; 
      #循环获取共4页内容 
      self.PageTotal=1 
      #正则解析出tr 
      self.TrExp=re.compile("(?isu)<tr[^>]*>(.*?)</tr>") 
      #正则解析出td 
      self.TdExp = re.compile("(?isu)<td[^>]*>(.*?)</td>") 
      #创建cookie 
      self.cookie = cookielib.CookieJar() 
      #构建opener 
      self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie)) 
      #解析页面总页数 
      self.Total=4 
      #####设置csv文件 
      self.CsvFileName="Pyw.csv" 
      #####存储Csv数据 
      self.CsvData=[] 

      #解析网页中的内容 
      def GetPageItem(self,PageHtml): 
      #循环取出Table中的所有行 
      for row in self.TrExp.findall(PageHtml): 
      #取出当前行的所有列 
      coloumn=self.TdExp.findall(row) 
      #判断符合的记录 
      if len(coloumn) == 9: 
      # print "游戏账号:%s" % coloumn[0].strip() 
      # print "用户类型:%s" % coloumn[1].strip() 
      # print "游戏名称:%s" % coloumn[2].strip() 
      # print "渠道:%s" % coloumn[3].strip() 
      # print "充值类型:%s" % coloumn[4].strip() 
      # print "充值金额:%s" % coloumn[5].strip().replace("¥", "") 
      # print "返利金额:%s" % coloumn[6].strip().replace("¥", "") 
      # print "单号:%s" % coloumn[7].strip() 
      # print "日期:%s" % coloumn[8].strip() 
      #拼凑行数据 
      d=[coloumn[0].strip(), 
      coloumn[1].strip(), 
      coloumn[2].strip(), 
      coloumn[3].strip(), 
      coloumn[4].strip(), 
      coloumn[5].strip().replace("¥", ""), 
      coloumn[6].strip().replace("¥", ""), 
      coloumn[7].strip(), 
      coloumn[8].strip()] 
      self.CsvData.append(d) 

      #模拟登录并获取页面数据 
      def GetPageHtml(self): 
      try: 
      #模拟登录 
      request=urllib2.Request(url=self.LoginUrl,data=self.PostData) 
      ResultHtml=self.opener.open(request) 
      #开始执行获取页面数据 
      while self.PageTotal<=self.Total: 
      #动态拼凑所要解析的Url 
      m_PageUrl = self.PageUrl % self.PageTotal 
      #计算当期第几页 
      self.PageTotal = self.PageTotal + 1 
      #获取当前解析页面的所有内容 
      ResultHtml=self.opener.open(m_PageUrl) 
      #解析网页中的内容 
      self.GetPageItem(ResultHtml.read()) 

      ####写入Csv文件中 
      with open(self.CsvFileName, 'wb') as csvfile: 
      spamwriter = csv.writer(csvfile, dialect='excel') 
      #设置标题 
      spamwriter.writerow(["游戏账号","用户类型","游戏名称","渠道","充值类型","充值金额","返利金额","单号","日期"]) 
      #将CsvData中的数据循环写入到CsvFileName文件中 
      for item in self.CsvData: 
      spamwriter.writerow(item) 

      print "成功导出CSV文件!" 
      except Exception,e: 
      print "404 error!%s" % e 
      #实例化类 
      p=Pyw() 
      #执行方法 
      p.GetPageHtml()

    导出结果

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/xung/p/9083319.html
Copyright © 2020-2023  润新知