Mapreduce 可重设可重设对象

Mapreduce 可重设可重设对象,mapreduce,iterable,Mapreduce,Iterable,我正在写一份MR工作,在减速机方面,我需要在做任何事情之前检查Iterable的大小。很久以前确实有人问过同样的问题(),但给出的解决方案不起作用。由于Iterable没有size()方法,请建议我怎么做。 我尝试了以下几种选择 试图从iterable获取迭代器对象,但得到以下类型转换 错误。ResettableIterator也有同样的错误java.lang.ClassCastException:org.apache.hadoop.mapreduce.ReduceContext$ValueIt

我正在写一份MR工作,在减速机方面,我需要在做任何事情之前检查Iterable的大小。很久以前确实有人问过同样的问题(),但给出的解决方案不起作用。由于Iterable没有size()方法,请建议我怎么做。 我尝试了以下几种选择

  • 试图从iterable获取迭代器对象,但得到以下类型转换 错误。ResettableIterator也有同样的错误
    java.lang.ClassCastException:org.apache.hadoop.mapreduce.ReduceContext$ValueIterator不能强制转换为java.util.ListIterator

  • 如果我迭代到Iterable对象的末尾以获得大小,那么 如何返回到索引的开头

  • if(值集合实例){
    返回((集合)值).size();
    }
    
    由于值的类型不同,因此不会命中

  • 请帮我提供一些示例代码。这个问题确实花了很多时间。 非常感谢

  • Iterator Iterator=使用value.Iterator()以获取迭代器
  • 将值存储在
    列表
    或其他一些数据结构中,然后对其进行迭代