package com;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class Apriori extends Configured implements Tool {
enum Counter {
LINESKIP, // 出错的行
}
public static class MAP extends
Mapper {
@Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
// 输入的一行预处理文本
StringTokenizer itr = new StringTokenizer(value.toString());
String[] values = new String[2];
int i = 0;
while (itr.hasMoreTokens()) {
values[i] = itr.nextToken();
i++;
}
if (values[0].length() > 0 && values[1].length() > 0) {
String dd[] = values[1].split(",");
System.out.println(values[1] + "," + dd.length);
int[] result;
String output = "";
for (int j = 1; j < dd.length; j++) {
Combination c = new Combination(j + 1, dd.length);
while ((result = c.next()) != null) {
for (i = 0; i < result.length; i++) {
// System.out.print(result+"");
output += dd[result] + ",";
//System.out.print(d[i]+" ");
output += dd[result[i]] + ",";
//
}
// System.out.println();
context.write(new
Text(output.substring(0,
output.length()-1)), new IntWritable(1));
result = null;
output = "";
}
}
}
}
}
public static class REDUCE extends
Reducer
{
@Override
public void reduce(Text key, Iterable values,
Context context) throws IOException, InterruptedException {
int CNT = 0;
for (IntWritable value : values) {
CNT += value.get();
}
// int min_sup =
// Interge.context.getConfiguration().get("min_sup");
int min_sup = 2;
if (CNT >= min_sup)
context.write(key, new IntWritable(CNT));
}
}
if (args.length != 2) {
System.err
path>");
System.exit(-1);
public static void main(String[] args) throws Exception {
.println("Usage:
MaxTemperature