A classificação depende de alguns detalhes de implementação e funcionalidades adicionais no tempo de execução do Google. Veja a seção 4.2:
We guarantee that within a given partition, the intermediate key/value pairs are processed in increasing key order. This ordering guarantee makes it easy to generate a sorted output file per partition, which is useful when the output file format needs to support efficient random access lookups by key, or users of the output find it convenient to have the data sorted.
O sistema também permite um esquema de particionamento arbitrário (mencionado na seção 4.1). O sistema de classificação usa esse esquema:
The partitioning function uses the initial bytes of the key to segregate it into one of R pieces.
Assim, quando a função Reduzir é executada em cada partição, não há alterações nos dados, mas a saída é garantida na ordem correta (presumivelmente não há nada especial sobre a implementação disso - é apenas um tipo local simples de algum tipo ).
Uma vez que você tenha suas partições classificadas, tudo o que você precisa fazer é concatená-las na ordem dos bytes iniciais que foram usados para criar as partições e você tem uma lista totalmente classificada.
(Eu estou tomando uma "chave de classificação" para ser um resumo do valor que é projetado, então quando as chaves são classificadas, os valores também estão na ordem correta, pelo menos para uma aproximação razoável. Simplesmente truncando o primeiro letras de uma corda seria suficiente para fazer uma chave de classificação bruta)