我需要一个reducer来迭代一个数组并分配每个元素(总共2个元素)。但是我的代码是否采用了所有值并简单地将其分配给密钥?
例如:
public void reduce(Text key, Iterator<Text[]> values,
OutputCollector<Text, Text[]> output, Reporter reporter)
throws IOException {
这种方法只是将我的所有数组转储到值桶中吗?
有没有办法使用While循环来获取Text []的每个元素并将其分配给int?
这是我的开始:
while (values.hasNext()){
String AtBats = values.toString();
int AB = Integer.parseInt(AtBats);
这将获取每个值并使其成为AtBat,但我希望第二个元素是Hit。对如何实现这一点感到困惑。
答案 0 :(得分:6)
据我的回答,您希望获取您的值,然后将它们解析为字符串。
你把一切都搞定了,但我建议你内联AtBats并将其作为
int AB = Integer.parseInt(values.toString());
更新:在谈到这个之后,我们得出的结论是,传递一个数组并循环遍历它是多余的。
不是传递带有两个值的数组,而是使用while循环来遍历它并将其值分配给两个变量,只需将这些值独立传递下去。