Exemplo n.º 1
0
        /// <exception cref="System.IO.IOException"/>
        private void CombineAndSpill(RawKeyValueIterator kvIter, Counters.Counter inCounter
                                     )
        {
            JobConf           job        = jobConf;
            Reducer           combiner   = ReflectionUtils.NewInstance(combinerClass, job);
            Type              keyClass   = (Type)job.GetMapOutputKeyClass();
            Type              valClass   = (Type)job.GetMapOutputValueClass();
            RawComparator <K> comparator = (RawComparator <K>)job.GetCombinerKeyGroupingComparator
                                               ();

            try
            {
                Task.CombineValuesIterator values = new Task.CombineValuesIterator(kvIter, comparator
                                                                                   , keyClass, valClass, job, Reporter.Null, inCounter);
                while (values.More())
                {
                    combiner.Reduce(values.GetKey(), values, combineCollector, Reporter.Null);
                    values.NextKey();
                }
            }
            finally
            {
                combiner.Close();
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Get the user defined
 /// <see cref="Org.Apache.Hadoop.IO.RawComparator{T}"/>
 /// comparator for
 /// grouping keys of inputs to the combiner.
 /// </summary>
 /// <returns>comparator set by the user for grouping values.</returns>
 /// <seealso cref="Org.Apache.Hadoop.Mapreduce.Job.SetCombinerKeyGroupingComparatorClass(System.Type{T})
 ///     ">for details.</seealso>
 public virtual RawComparator <object> GetCombinerKeyGroupingComparator()
 {
     return(conf.GetCombinerKeyGroupingComparator());
 }