/** * Helper method to create an object writable from a value managed by the adapter. * * @param key * @param value * @return */ protected ObjectWritable toWritableValue(final GeoWaveInputKey key, final Object value) { return serializationTool.toWritable(key.getInternalAdapterId(), value); }
@Override protected void map( final GeoWaveInputKey key, final SimpleFeature value, final Mapper<GeoWaveInputKey, SimpleFeature, AvroKey<AvroSimpleFeatureCollection>, NullWritable>.Context context) throws IOException, InterruptedException { AvroSFCWriter avroWriter = adapterIdToAvroWriterMap.get(key.getInternalAdapterId()); if (avroWriter == null) { avroWriter = new AvroSFCWriter(value.getFeatureType(), batchSize); adapterIdToAvroWriterMap.put(key.getInternalAdapterId(), avroWriter); } final AvroSimpleFeatureCollection retVal = avroWriter.write(value); if (retVal != null) { outKey.datum(retVal); context.write(outKey, outVal); } }
@Override protected void reduceNativeValues( final GeoWaveInputKey key, final Iterable<Object> values, final Reducer<GeoWaveInputKey, ObjectWritable, GeoWaveOutputKey, Object>.Context context) throws IOException, InterruptedException { outputKey.setTypeName(internalAdapterStore.getTypeName(key.getInternalAdapterId())); for (final Object value : values) { context.write(outputKey, value); } }
@Override public void partitionWith(final PartitionData partitionData) throws Exception { outputValue.setInternalAdapterId(key.getInternalAdapterId()); AdapterWithObjectWritable.fillWritableWithAdapter( serializationTool, outputValue, key.getInternalAdapterId(), key.getDataId(), unwrappedValue); partitionDataWritable.setPartitionData(partitionData); context.write(partitionDataWritable, outputValue); } });
@Override public void write(final GeoWaveInputKey key, final Object value) throws IOException, InterruptedException { context.write(key, serializationTool.toWritable(key.getInternalAdapterId(), value)); }
protected void mapWritableValue( final GeoWaveInputKey key, final ObjectWritable value, final Mapper<GeoWaveInputKey, ObjectWritable, KEYOUT, VALUEOUT>.Context context) throws IOException, InterruptedException { mapNativeValue(key, serializationTool.fromWritable(key.getInternalAdapterId(), value), context); }
@Override public void write(final GeoWaveInputKey key, final Object value) throws IOException, InterruptedException { writableContext.write(key, serializationTool.toWritable(key.getInternalAdapterId(), value)); }
protected void reduceWritableValues( final GeoWaveInputKey key, final Iterable<ObjectWritable> values, final Reducer<GeoWaveInputKey, ObjectWritable, KEYOUT, VALUEOUT>.Context context) throws IOException, InterruptedException { final HadoopWritableSerializer<?, Writable> serializer = serializationTool.getHadoopWritableSerializerForAdapter(key.getInternalAdapterId()); final Iterable<Object> transformedValues = Iterables.transform(values, new Function<ObjectWritable, Object>() { @Override public Object apply(final ObjectWritable writable) { final Object innerObj = writable.get(); return (innerObj instanceof Writable) ? serializer.fromWritable((Writable) innerObj) : innerObj; } }); reduceNativeValues(key, transformedValues, context); }
final T unwrappedValue = (T) ((value instanceof ObjectWritable) ? serializationTool.fromWritable(key.getInternalAdapterId(), (ObjectWritable) value) : value); try {
@Override protected void reduceNativeValues( final GeoWaveInputKey key, final Iterable<Object> values, final Reducer<GeoWaveInputKey, ObjectWritable, GeoWaveOutputKey, Object>.Context context) throws IOException, InterruptedException { final Iterator<Object> objects = values.iterator(); while (objects.hasNext()) { final AdapterToIndexMapping mapping = store.getIndicesForAdapter(key.getInternalAdapterId()); context.write( new GeoWaveOutputKey<>( internalAdapterStore.getTypeName(mapping.getAdapterId()), mapping.getIndexNames()), objects.next()); } } }
protected void mapWritableValue( final GeoWaveInputKey key, final ObjectWritable value, final Mapper<GeoWaveInputKey, ObjectWritable, GeoWaveInputKey, ObjectWritable>.Context context) throws IOException, InterruptedException { mapNativeValue( key, serializationTool.fromWritable(key.getInternalAdapterId(), value), new NativeMapContext<GeoWaveInputKey, ObjectWritable>(context, serializationTool)); }
protected void reduceWritableValues( final GeoWaveInputKey key, final Iterable<ObjectWritable> values, final Reducer<GeoWaveInputKey, ObjectWritable, GeoWaveInputKey, ObjectWritable>.Context context) throws IOException, InterruptedException { final HadoopWritableSerializer<?, Writable> serializer = serializationTool.getHadoopWritableSerializerForAdapter(key.getInternalAdapterId()); final Iterable<Object> transformedValues = Iterables.transform(values, new Function<ObjectWritable, Object>() { @Override public Object apply(final ObjectWritable writable) { final Object innerObj = writable.get(); return innerObj instanceof Writable ? serializer.fromWritable((Writable) innerObj) : innerObj; } }); reduceNativeValues(key, transformedValues, new NativeReduceContext(context, serializationTool)); }
final MapContext<GeoWaveInputKey, GridCoverage, GeoWaveInputKey, Object> context) throws IOException, InterruptedException { if (helper.isOriginalCoverage(key.getInternalAdapterId())) { final InternalDataAdapter<?> adapter = super.serializationTool.getInternalAdapter(key.getInternalAdapterId()); if ((adapter != null) && (adapter.getAdapter() != null) new GeoWaveKeyImpl( helper.getNewDataId(c), key.getInternalAdapterId(), partitionKey, sortKey,
@Override protected void mapNativeValue( final GeoWaveInputKey key, final Object value, final org.apache.hadoop.mapreduce.Mapper<GeoWaveInputKey, ObjectWritable, GeoWaveInputKey, ObjectWritable>.Context context) throws IOException, InterruptedException { @SuppressWarnings("unchecked") final AnalyticItemWrapper<T> wrapper = itemWrapperFactory.create((T) value); outputKey.setInternalAdapterId(key.getInternalAdapterId()); outputKey.setDataId( new ByteArray( StringUtils.stringToBinary(nestedGroupCentroidAssigner.getGroupForLevel(wrapper)))); outputKey.setGeoWaveKey(key.getGeoWaveKey()); context.write(outputKey, currentValue); }
@Override protected void mapNativeValue( final GeoWaveInputKey key, final Object value, final org.apache.hadoop.mapreduce.Mapper<GeoWaveInputKey, ObjectWritable, GeoWaveInputKey, ObjectWritable>.Context context) throws IOException, InterruptedException { @SuppressWarnings("unchecked") final double rank = samplingFunction.rank(sampleSize, (T) value); if (rank > 0.0000000001) { final AnalyticItemWrapper<Object> wrapper = itemWrapperFactory.create(value); outputKey.setDataId( new ByteArray( keyManager.putData( nestedGroupCentroidAssigner.getGroupForLevel(wrapper), 1.0 - rank, // sorts // in // ascending // order key.getDataId().getBytes()))); outputKey.setInternalAdapterId(key.getInternalAdapterId()); outputKey.setGeoWaveKey(key.getGeoWaveKey()); context.write(outputKey, currentValue); } }