@Override public long next(HdfsInputStream hdfsistr, Holder<Object> key, Holder<Object> value) { try { ArrayFile.Reader reader = (ArrayFile.Reader) hdfsistr.getIn(); Holder<Integer> valueSize = new Holder<Integer>(); Writable valueWritable = (Writable) ReflectionUtils.newInstance(reader.getValueClass(), new Configuration()); if (reader.next(valueWritable) != null) { value.value = getObject(valueWritable, valueSize); return valueSize.value; } else { return 0; } } catch (Exception ex) { throw new RuntimeCamelException(ex); } }
@Override public long next(HdfsInputStream hdfsistr, Holder<Object> key, Holder<Object> value) { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(hdfsistr.getChunkSize()); byte buf[] = new byte[HdfsConstants.DEFAULT_BUFFERSIZE]; int bytesRead = ((InputStream) hdfsistr.getIn()).read(buf); if (bytesRead >= 0) { bos.write(buf, 0, bytesRead); key.value = null; value.value = bos; return bytesRead; } else { key.value = null; value.value = null; return 0; } } catch (IOException ex) { throw new RuntimeCamelException(ex); } }
@Override public long next(HdfsInputStream hdfsistr, Holder<Object> key, Holder<Object> value) { try { MapFile.Reader reader = (BloomMapFile.Reader) hdfsistr.getIn(); Holder<Integer> keySize = new Holder<Integer>(); WritableComparable<?> keyWritable = (WritableComparable<?>) ReflectionUtils.newInstance(reader.getKeyClass(), new Configuration()); Holder<Integer> valueSize = new Holder<Integer>(); Writable valueWritable = (Writable) ReflectionUtils.newInstance(reader.getValueClass(), new Configuration()); if (reader.next(keyWritable, valueWritable)) { key.value = getObject(keyWritable, keySize); value.value = getObject(valueWritable, valueSize); return keySize.value + valueSize.value; } else { return 0; } } catch (Exception ex) { throw new RuntimeCamelException(ex); } }