日付:2019年11月13日
ブログ期間:115
水曜日
結果ファイルのデータの説明:
IP:106.39.41.166、(都市)
日付:10/11月/ 2016:00:01:02 0800、(日付)
デイ:10、(日数)
交通:54、(流量)
タイプ:ビデオ、(種類:ビデオの映像や記事の記事)
ID:8701(IDビデオや記事)
テスト要件:
1、データクリーニング:クリーニングデータに応じて、インポートデータ洗濯にハイブデータベース。
二段データクリーニング:
(1)第1段階:必要な情報は、元のログから抽出され
IP:199.30.25.88
時間:10/11月/ 2016:00:01:03 0800
交通:62
関連記事:記事/ 11325
ビデオ:ビデオ/ 3235
(2)第二段階:から抽出された情報に基づいて細かい操作を行います
IP --->都会(IP)
日付 - >時間:2016年11月10日夜12時01分03秒
日:10
交通:62
タイプ:記事/ビデオ
ID:11325
(3)ハイブデータベーステーブル構造:
テーブルデータを作成する(IP列、時間文字列、日文字列、交通BIGINT、文字列型、id文字列)
2 、データ処理:
・トップ10の訪問の統計で最も人気のあるビデオ/記事(ビデオ/記事)
・最も人気のある都市トップ10コースの統計によると(IP)
・トラフィック統計によると、トップ10で最も人気のあるコース(トラフィック)
3 、データ視覚化:統計結果は、注ぎのMySQL データベースをグラフィカルな表示モードを介して展開。
生産:
A、Beanクラスのデータ・ベース
1つの パッケージcom.hive.basic。 2 3 インポートcom.hive.format.IPUtil。 4 インポートcom.hive.format.TimeUtil。 5 6 パブリック クラス豆{ 7 保護文字列IP。 図8は、 保護された文字列の時間を。 図9は、 保護された文字列の日。 10は 保護された int型のトラフィックを、 図11は、 保護された文字列型。 図12は、 保護された文字列ID。 13 パブリックストリングgetIp(){ 14 リターンIP。 15 } 16 パブリック ボイドSETIP(文字列IP){ 17 この .IP = IP。 18 } 19 公衆ストリングgetTime(){ 20 の戻り時間; 21 } 22 公衆ストリングgetDay(){ 23 リターン日。 24 } 25 公共 ボイドsetDay(文字列日){ 26 この day以下= 日。 27 } 28 公共 ボイドのsetTime(文字列の時間){ 29 この .time = 時間。 30 } 31 公共 INT getTraffic(){ 32 リターントラフィック。 33 } 34 公共 ボイド setTraffic(INT トラフィック){ 35 この .traffic = トラフィック。 36 } 37 パブリック文字列のgetType(){ 38 リターンタイプ、 39 } 40 公共 ボイドはsetType(文字列型){ 41 この .TYPE = タイプ。 42 } 43 パブリック文字列のgetId(){ 44 戻り値のID。 45 } 46 公共 ボイドSETID(文字列ID){ 47 この .ID = ID。 48 } 49 公共ビーン(文字列のIP、文字列の時、文字列の日、int型のトラフィック、文字列型、文字列ID){ 50 スーパー(); 51 この .IP = IP。 52 この .time = 時間。 53 本・日= 日; 54 この .traffic = トラフィック; 55 この .TYPE = タイプ。 56 本= .ID ID; 57である } 58 パブリック・ビーン(){ 59 スーパー(); 60 // TODO自動生成されたコンストラクタスタブ 61 } 62 / * フォーマット変換* / 63である 公共 ボイド(フォーマット){ 64 この .IP = IPUtil .getCityInfo( "106.39.41.166")スプリット( "\\ |")[3] .replace( " 市"、 "" ); 65 この .time = TimeUtil.deal(この.time); 66 } 67 公衆 無効ディスプレイ(){ 68 ""するSystem.out.println(IP + "" +タイム+ "" + +デー+交通+ " "+タイプ+"、" +ID)。 69 } 70 }
B、日付フォーマット変換クラス
1 パッケージcom.hive.format。 2 3 インポートjava.text.ParseException。 4 インポートjava.text.SimpleDateFormatの。 5 インポートjava.util.Date; 6 インポートのjava.util.Locale。 7 8 パブリック クラスTimeUtil { 9 パブリック 静的文字列取引(文字列の時間){ 10 11 のSimpleDateFormat SDF = 新しいてSimpleDateFormat( "DD / MMM / YYYY HH:MM:SSのZ" 、Locale.ENGLISH)。 12 日、DD = nullを。 13 トライ{ 14 DD = sdf.parse(時間); 15 } キャッチ(はParseException E){ 16 // TODO自動生成されたcatchブロック 17。 e.printStackTrace(); 18である } // 現在までの文字列形式 。19 20である 文字列resDate = 新しい新しいてSimpleDateFormat( "MM-DD-YYYY HH:MM:SS" ).format(DD)、 21は 22であり 、リターンresDate; 23である } 24 公共 静的 ボイドメイン(文字列[]引数)がスローはParseException { 25 26です ストリング日付ストリング= "10/11月/ 2016:00:01:02 0800" 。 27 のSimpleDateFormat SDF = 新しいてSimpleDateFormat( "DD / MMM / YYYY HH:MM:SSのZ" 、Locale.ENGLISH)。 28 日DD = sdf.parse(日付ストリング)。// 将字符串改为日付的格式 29 文字resDate = 新しいてSimpleDateFormat( "YYYY-MM-DD HH:MM:SS" ).format(DD); 30 のSystem.out.println(resDate)。 31 } 32 }