public Optional < Bucket > getBucket ( InputRow inputRow ) { final Optional < Interval > timeBucket = schema . getDataSchema ( ) . getGranularitySpec ( ) . bucketInterval ( DateTimes . utc ( inputRow . getTimestampFromEpoch ( ) ) ) ; if ( ! timeBucket . isPresent ( ) ) { return Optional . absent ( ) ; } final DateTime bucketStart = timeBucket . get ( ) . getStart ( ) ; final ShardSpec actualSpec = shardSpecLookups . get ( bucketStart . getMillis ( ) ) . getShardSpec ( rollupGran . bucketStart ( inputRow . getTimestamp ( ) ) . getMillis ( ) , inputRow ) ; final HadoopyShardSpec hadoopyShardSpec = hadoopShardSpecLookup . get ( bucketStart . getMillis ( ) ) . get ( actualSpec ) ; return Optional . of ( new Bucket ( hadoopyShardSpec . getShardNum ( ) , bucketStart , actualSpec . getPartitionNum ( ) ) ) ; }
Get the proper bucket for some input row .