@Override
 public void configureShuffle(Job job, GroupingOptions options) {
   if (options != null) {
     options.configure(job);
   }
   WritableType keyType = (WritableType) tableType.getKeyType();
   WritableType valueType = (WritableType) tableType.getValueType();
   job.setMapOutputKeyClass(keyType.getSerializationClass());
   job.setMapOutputValueClass(valueType.getSerializationClass());
 }
 public WritableGroupedTableType(WritableTableType<K, V> tableType) {
   super(tableType);
   WritableType keyType = (WritableType) tableType.getKeyType();
   WritableType valueType = (WritableType) tableType.getValueType();
   this.inputFn = new PairIterableMapFn(keyType.getInputMapFn(), valueType.getInputMapFn());
   this.outputFn = tableType.getOutputMapFn();
   this.converter =
       new WritablePairConverter(
           keyType.getSerializationClass(), valueType.getSerializationClass());
 }