Как использовать метод toArray () в ArrayWritable - Hadoop - PullRequest
1 голос
/ 21 ноября 2011

Существует метод toArray() в классе ArrayWritable в hadoop, который должен означать: преобразовать этот ArrayWritable в массив.Но синтаксис этого таков:

public Object toArray()

Так как же нам использовать эту функцию?Об этом нет документации по пакету документов.

1 Ответ

3 голосов
/ 21 ноября 2011

Обычно ArrayWritable необходимо соответствующим образом расширять

public class TextArrayWritable extends ArrayWritable {
    public TextArrayWritable() {
        super(Text.class);
    }
}

Вот код из ArrayWritable

public ArrayWritable(Class<? extends Writable> valueClass) {
    if (valueClass == null) { 
        throw new IllegalArgumentException("null valueClass"); 
    }    
    this.valueClass = valueClass;
}

public Object toArray() {
    Object result = Array.newInstance(valueClass, values.length);
        for (int i = 0; i < values.length; i++) {
            Array.set(result, i, values[i]);
        }
       return result;
}

Итак, ArrayWritable # toArray вернет java.lang.reflect.Array типа, указанного в super(Text.class); TextArrayWritable или соответствующего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...