1

我正在尝试对文件名进行排序,例如

    cat1.pdf, cat2.pdf, ... cat10.pdf ... 

我现在正在使用具有以下参数的排序:

    -D mapreduce.job.output.key.comparator.class=org.apache.hadoop.mapreduce.lib.partition.KeyFieldBasedComparator 
    -D stream.num.map.output.key.fields=2 
    -D mapreduce.partition.keypartitioner.options="-k1,1" 
    -D mapreduce.partition.keycomparator.options="-k1,1 -k2,2 -V" 
    -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner

键值对由选项卡分隔,文件名作为值,字符串作为键。问题是我现在的排序对文件名进行二次排序,以便我得到

    cat1.pdf, cat10.pdf, cat2.pdf, cat3.pdf, cat30.pdf ... 

我怎样才能得到它,使文件按如下方式排序:

    cat1.pdf, cat2.pdf, cat3.pdf ... cat10.pdf,cat11.pdf...

我正在使用 hadoop 流式传输 2.7.1

4

0 回答 0