ハイブストレージおよび処理のMapReduce - データクリーニング

日付: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 }
Bean.java

   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 }
TimeUtil.java

 

 

 

 

おすすめ

転載: www.cnblogs.com/onepersonwholive/p/11852910.html