use of com.tencent.angel.ml.math2.storage.IntKeyVectorStorage in project angel by Tencent.
the class LabeledUpdateIndexBaseTask method preProcess.
@Override
public void preProcess(TaskContext taskContext) {
try {
Reader<KEYIN, VALUEIN> reader = taskContext.getReader();
while (reader.nextKeyValue()) {
LabeledData out = parse(reader.getCurrentKey(), reader.getCurrentValue());
if (out != null) {
taskDataBlock.put(out);
if (updateIndexEnable) {
Vector vector = out.getX();
int[] indexes;
if (vector instanceof IntDummyVector) {
indexes = ((IntDummyVector) vector).getIndices();
} else if (vector.getStorage() instanceof IntKeyVectorStorage) {
indexes = ((IntKeyVectorStorage) vector).getIndices();
} else {
throw new AngelException("");
}
for (int i = 0; i < indexes.length; i++) {
indexSet.add(indexes[i]);
}
}
}
}
taskDataBlock.flush();
} catch (Exception e) {
throw new AngelException("Pre-Process Error.", e);
}
}
Aggregations