@Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = fieldValue; return serializer.createInstance(fields); } }
@SuppressWarnings("unchecked") @Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = innerAccessor.set((R) fields[pos], fieldValue); return serializer.createInstance(fields); } }
@Override public void reduce(Iterable<T> records, Collector<T> out) { final AggregationFunction<Object>[] aggFunctions = this.aggFunctions; final int[] fieldPositions = this.fieldPositions; // aggregators are initialized from before T current = null; for (T record : records) { current = record; for (int i = 0; i < fieldPositions.length; i++) { Object val = current.productElement(fieldPositions[i]); aggFunctions[i].aggregate(val); } } Object[] fields = new Object[serializer.getArity()]; int length = serializer.getArity(); // First copy all tuple fields, then overwrite the aggregated ones for (int i = 0; i < length; i++) { fields[i] = current.productElement(i); } for (int i = 0; i < fieldPositions.length; i++) { Object aggVal = aggFunctions[i].getAggregate(); fields[fieldPositions[i]] = aggVal; aggFunctions[i].initializeAggregate(); } T result = serializer.createInstance(fields); out.collect(result); }
@Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = fieldValue; return serializer.createInstance(fields); } }
@Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = fieldValue; return serializer.createInstance(fields); } }
@Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = fieldValue; return serializer.createInstance(fields); } }
@SuppressWarnings("unchecked") @Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = innerAccessor.set((R) fields[pos], fieldValue); return serializer.createInstance(fields); } }
@SuppressWarnings("unchecked") @Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = innerAccessor.set((R) fields[pos], fieldValue); return serializer.createInstance(fields); } }
@SuppressWarnings("unchecked") @Override public T set(T record, F fieldValue) { Product prod = (Product) record; for (int i = 0; i < length; i++) { fields[i] = prod.productElement(i); } fields[pos] = innerAccessor.set((R) fields[pos], fieldValue); return serializer.createInstance(fields); } }
@Override public OUT convert(Row current) { Object[] values = new Object[current.getArity()]; for (int i = 0; i < current.getArity(); ++i) { values[i] = current.getField(i); } if (reuse == null) { return tupleSerializer.createInstance(values); } else { return tupleSerializer.createOrReuseInstance(values, reuse); } }
@Override public void reduce(Iterable<T> records, Collector<T> out) { final AggregationFunction<Object>[] aggFunctions = this.aggFunctions; final int[] fieldPositions = this.fieldPositions; // aggregators are initialized from before T current = null; for (T record : records) { current = record; for (int i = 0; i < fieldPositions.length; i++) { Object val = current.productElement(fieldPositions[i]); aggFunctions[i].aggregate(val); } } Object[] fields = new Object[serializer.getArity()]; int length = serializer.getArity(); // First copy all tuple fields, then overwrite the aggregated ones for (int i = 0; i < length; i++) { fields[i] = current.productElement(i); } for (int i = 0; i < fieldPositions.length; i++) { Object aggVal = aggFunctions[i].getAggregate(); fields[fieldPositions[i]] = aggVal; aggFunctions[i].initializeAggregate(); } T result = serializer.createInstance(fields); out.collect(result); }
@Override public void reduce(Iterable<T> records, Collector<T> out) { final AggregationFunction<Object>[] aggFunctions = this.aggFunctions; final int[] fieldPositions = this.fieldPositions; // aggregators are initialized from before T current = null; for (T record : records) { current = record; for (int i = 0; i < fieldPositions.length; i++) { Object val = current.productElement(fieldPositions[i]); aggFunctions[i].aggregate(val); } } Object[] fields = new Object[serializer.getArity()]; int length = serializer.getArity(); // First copy all tuple fields, then overwrite the aggregated ones for (int i = 0; i < length; i++) { fields[i] = current.productElement(i); } for (int i = 0; i < fieldPositions.length; i++) { Object aggVal = aggFunctions[i].getAggregate(); fields[fieldPositions[i]] = aggVal; aggFunctions[i].initializeAggregate(); } T result = serializer.createInstance(fields); out.collect(result); }
@Override public void reduce(Iterable<T> records, Collector<T> out) { final AggregationFunction<Object>[] aggFunctions = this.aggFunctions; final int[] fieldPositions = this.fieldPositions; // aggregators are initialized from before T current = null; for (T record : records) { current = record; for (int i = 0; i < fieldPositions.length; i++) { Object val = current.productElement(fieldPositions[i]); aggFunctions[i].aggregate(val); } } Object[] fields = new Object[serializer.getArity()]; int length = serializer.getArity(); // First copy all tuple fields, then overwrite the aggregated ones for (int i = 0; i < length; i++) { fields[i] = current.productElement(i); } for (int i = 0; i < fieldPositions.length; i++) { Object aggVal = aggFunctions[i].getAggregate(); fields[fieldPositions[i]] = aggVal; aggFunctions[i].initializeAggregate(); } T result = serializer.createInstance(fields); out.collect(result); }
@Override public void reduce(Iterable<T> records, Collector<T> out) { final AggregationFunction<Object>[] aggFunctions = this.aggFunctions; final int[] fieldPositions = this.fieldPositions; // aggregators are initialized from before T current = null; for (T record : records) { current = record; for (int i = 0; i < fieldPositions.length; i++) { Object val = current.productElement(fieldPositions[i]); aggFunctions[i].aggregate(val); } } Object[] fields = new Object[serializer.getArity()]; int length = serializer.getArity(); // First copy all tuple fields, then overwrite the aggregated ones for (int i = 0; i < length; i++) { fields[i] = current.productElement(i); } for (int i = 0; i < fieldPositions.length; i++) { Object aggVal = aggFunctions[i].getAggregate(); fields[fieldPositions[i]] = aggVal; aggFunctions[i].initializeAggregate(); } T result = serializer.createInstance(fields); out.collect(result); }