String complexType = metricTypeNames.get(metric);
ComplexMetricSerde serde = ComplexMetrics.getSerdeForType(complexType);
if (serde == null) {
throw new ISE("Unknown type[%s]", complexType);
}
final GenericIndexed metricColumn = GenericIndexed.fromIterable(
Iterables.transform(
theRows,
new Function<Rowboat, Object>()
{
@Override
public Object apply(Rowboat input)
{
return input.getMetrics()[metricIndex];
}
}
),
serde.getObjectStrategy()
);
metBuilder.setValueType(ValueType.COMPLEX);
writeColumn(
v9Smoosher,
new ComplexColumnPartSerde(metricColumn, complexType),
metBuilder,
metric
);
break;
default:
throw new ISE("Unknown type[%s]", type);
}
progress.stopSection(section);
}