MapReduce案例 自定義資料型別

2022-09-09 17:30:33 字數 2608 閱讀 4387

統計第一季度使用者的手機上網流量,通話時間,簡訊數量。

資料格式:

** 流量 時間 簡訊數

這裡自定義了乙個類實現writable介面,用來讀取資料。

package

demo;

import

j**a.io.ioexception;

import

org.apache.hadoop.conf.configuration;

import

org.apache.hadoop.fs.path;

import

org.apache.hadoop.io.text;

import

org.apache.hadoop.mapreduce.job;

import

import

org.apache.hadoop.mapreduce.reducer;

import

org.apache.hadoop.mapreduce.lib.input.fileinputformat;

import

org.apache.hadoop.mapreduce.lib.output.fileoutputformat;

/*** 統計第一季度使用者的手機上網流量,通話時間,簡訊數量

* @author

youxiangyang *

*/public

class

phonecount

@suppresswarnings("deprecation")

job job=new job(new configuration(), "jobname");

job.setjarbyclass(phonecount.

class

); fileinputformat.addinputpath(job,

new path(args[0]));

fileoutputformat.setoutputpath(job,

new path(args[1]));

class

); job.setreducerclass(phreduce.

class

); job.setoutputkeyclass(text.

class

); job.setoutputvalueclass(phonenum.

class

); job.waitforcompletion(

true

); }

public

static

@override

protected

throws

ioexception, interruptedexception

}public

static

class phreduce extends reducer

phonenum phonenum2 = new

phonenum(gsum,pt,pm);

context.write(key, phonenum2);}}

}

package

demo;

import

j**a.io.datainput;

import

j**a.io.dataoutput;

import

j**a.io.ioexception;

import

org.apache.hadoop.io.writable;

/*** 建立乙個自定義的類實現writable介面

* @author

youxiangyang *

*/public

class phonenum implements

writable

public phonenum(int internate, int calltime, int

mailcount)

//get和setter

public

intgetinternate()

public

void setinternate(int

internate)

public

intgetcalltime()

public

void setcalltime(int

calltime)

public

intgetmailcount()

public

void setmailcount(int

mailcount)

@override

public

void readfields(datainput input) throws

ioexception

@override

public

void write(dataoutput output) throws

ioexception

@override

public

string tostring()

}

mapreduce自定義分組 自定義分割槽 二次排序

mapreduce中二次排序的思想中,我們常常需要對資料的分割槽分組進行自定義,以下就介紹一下自定義分割槽分組的簡單實現 1 自定義分割槽 public class demopartitionerextends partitioner return 4 要注意的是 設定了分割槽之後,reduce任務...

MapReduce如何自定義分割槽

我任然套用之前發過的乙個mapreduce例子來演示如何自定義分割槽,大家可以先去看一下我之前的例子 下面沿用上面的例子,在pom和 不變的情況下,做乙個自定義分割槽操作,目的是根據手機號前三位的不同分配資料到不同分割槽,如此我使用如下自定義分割槽類 package com.wy import or...

Spring 自定義註解案例

1.自定義時間格式註解 target elementtype.field 作用於字段上 retention retentionpolicy.runtime 保留到執行期 public inte ce dateparse2.自定義資料字典註解 target elementtype.field 作用於字...