AggregatorTests.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.mapred.lib.aggregate;
  19. import org.apache.hadoop.io.Text;
  20. import java.util.ArrayList;
  21. import java.util.Map.Entry;
  22. public class AggregatorTests extends ValueAggregatorBaseDescriptor {
  23.   
  24.   public ArrayList<Entry<Text, Text>> generateKeyValPairs(Object key, Object val) {
  25.     ArrayList<Entry<Text, Text>> retv = new ArrayList<Entry<Text, Text>>();
  26.     String [] words = val.toString().split(" ");
  27.     
  28.     String countType;
  29.     String id;
  30.     Entry<Text, Text> e;
  31.     
  32.     for (String word: words) {
  33.       long numVal = Long.parseLong(word);
  34.       countType = LONG_VALUE_SUM;
  35.       id = "count_" + word;
  36.       e = generateEntry(countType, id, ONE);
  37.       if (e != null) {
  38.         retv.add(e);
  39.       }
  40.       countType = LONG_VALUE_MAX;
  41.       id = "max";
  42.       e = generateEntry(countType, id, new Text(word));
  43.       if (e != null) {
  44.         retv.add(e);
  45.       }
  46.       
  47.       countType = LONG_VALUE_MIN;
  48.       id = "min";
  49.       e = generateEntry(countType, id, new Text(word));
  50.       if (e != null) {
  51.         retv.add(e);
  52.       }
  53.       
  54.       countType = STRING_VALUE_MAX;
  55.       id = "value_as_string_max";
  56.       e = generateEntry(countType, id, new Text(""+numVal));
  57.       if (e != null) {
  58.         retv.add(e);
  59.       }
  60.       
  61.       countType = STRING_VALUE_MIN;
  62.       id = "value_as_string_min";
  63.       e = generateEntry(countType, id, new Text(""+numVal));
  64.       if (e != null) {
  65.         retv.add(e);
  66.       }
  67.       
  68.       countType = UNIQ_VALUE_COUNT;
  69.       id = "uniq_count";
  70.       e = generateEntry(countType, id, new Text(word));
  71.       if (e != null) {
  72.         retv.add(e);
  73.       }
  74.       
  75.       countType = VALUE_HISTOGRAM;
  76.       id = "histogram";
  77.       e = generateEntry(countType, id, new Text(word));
  78.       if (e != null) {
  79.         retv.add(e);
  80.       }
  81.     }
  82.     return retv;
  83.   }
  84. }