• 大型数据库课堂测试3


    题目:

    Result文件数据说明:

    Ip:106.39.41.166,(城市)

    Date:10/Nov/2016:00:01:02 +0800,(日期)

    Day:10,(天数)

    Traffic: 54 ,(流量)

    Type: video,(类型:视频video或文章article)

    Id: 8701(视频或者文章的id)

    测试要求:

    1、 数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中。

    两阶段数据清洗:

    (1)第一阶段:把需要的信息从原始日志中提取出来

    ip:    199.30.25.88

    time:  10/Nov/2016:00:01:03 +0800

    traffic:  62

    文章: article/11325

    视频: video/3235

    (2)第二阶段:根据提取出来的信息做精细化操作

    ip--->城市 city(IP)

    date--> time:2016-11-10 00:01:03

    day: 10

    traffic:62

    type:article/video

    id:11325

    (3)hive数据库表结构:

    create table data(  ip string,  time string , day string, traffic bigint,

    type string, id   string )

    2、数据处理:

    ·统计最受欢迎的视频/文章的Top10访问次数 (video/article)

    ·按照地市统计最受欢迎的Top10课程 (ip)

    ·按照流量统计最受欢迎的Top10课程 (traffic)

    3、数据可视化:将统计结果倒入MySql数据库中,通过图形化展示的方式展现出来。

     

     

    一、数据清洗并导入

     1 package hadoop03;
     2 
     3 import java.io.FileReader;
     4 import java.io.FileWriter;
     5 import java.io.PrintWriter;
     6 import java.util.Scanner;
     7 /*
     8  106.39.41.166,10/Nov/2016:00:01:02 +0800,10,54 ,video,8701
     9 113.140.11.123,10/Nov/2016:00:01:02 +0800,10,54 ,video,5915
    10 125.122.216.102,10/Nov/2016:00:01:02 +0800,10,54 ,video,9819
    11 116.231.219.242,10/Nov/2016:00:01:02 +0800,10,54 ,video,6335
    12 61.136.143.62,10/Nov/2016:00:01:02 +0800,10,54 ,video,7629
    13  * */
    14 public class QX
    15 {
    16     public static void main(String[] args)
    17     {
    18         int i=0;
    19         String line="";
    20         String ip,time,day,traffic,type,id;
    21         try
    22         {
    23             FileReader fr=new FileReader("result.txt");
    24             PrintWriter out = new PrintWriter("result2.txt");
    25             Scanner in =new Scanner(fr);
    26             while(in.hasNext()&&i<5)
    27             {
    28                 //i++;
    29                 //System.out.println(in.nextLine());
    30                 line=in.nextLine();
    31                 String arr[]=line.split(",");
    32                 for(int t=0;t<arr.length;t++)
    33                 {
    34                     arr[t]=arr[t].replaceAll(" +", "");
    35                 }
    36                 String arr2[]=arr[1].split("[/:+]");
    37                 //2016-11-10 00:01:03   10/Nov/2016:00:01:02+0800
    38                 arr[1]=arr2[2]+"-"+month(arr2[1])+"-"+arr2[0]+" "+arr2[3]+"-"+arr2[4]+"-"+arr2[5];
    39                 for(int t=0;t<arr.length;t++)
    40                 {
    41                     System.out.print(arr[t]+"***");
    42                 }
    43                 out.write(arr[0]+","+arr[1]+","+arr[2]+","+arr[3]+","+arr[4]+","+arr[5]+"
    ");
    44                 out.flush();
    45                 
    46                 
    47             }
    48         }
    49         catch(Exception e)
    50         {
    51             e.printStackTrace();
    52         }
    53         
    54     }
    55     public static String month(String str1)
    56     {
    57         String str2="";
    58         switch(str1)
    59         {
    60         case "Nov":return "11";
    61         default:return "0";
    62         }
    63     }
    64 
    65 }

    由于mysql安装失败等原因,hive还没搞好

    未完待续

     

     

     

     

  • 相关阅读:
    JS常用数值验证
    JS遍历对象的属性和值
    SpringBoot解决特殊符号 []报400问题
    postman工具的用法
    SpringBoot使用谷歌方式生成图片验证码
    hibernate配置多对多ORM映射关系
    hibernate配置一对多ORM映射关系
    Class文件结构
    垃圾收集器与内存分配策略
    hibernate持久化类和一级缓存
  • 原文地址:https://www.cnblogs.com/CCRNRT/p/11851947.html
Copyright © 2020-2023  润新知