PySpark RDD SortByKey()无法正常工作

时间:2019-03-10 07:57:56

标签: python python-2.7 apache-spark pyspark

我想对我拥有的RDD进行排序,其中包含0-49995的键范围,使得(0,value),...,(49995,value)。

我想按升序对它进行排序,并且我正在使用SortByKey()函数,但由于它是我得到的结果,它似乎无法正常工作。

  
    
      

test0.sortByKey(True).take(5)

    
  

[( u'0',[u'38737',u'18591',u'27383',u'34211',u'337',u'352',u' 1532',u'12143',u'12561',u'17880']))(( u'1',[u'35621',u'44891',u'14150',u '15356',u'35630',u'13801',u'13889',u'14078',u'25228',u'13805']),( u'10',[ u'83',u'18',u'38',u'89',u'3',u'11',u'29',u'41',u'53',u'55'] ),( u'100',[u'42704',u'122',u'125',u'128',u'131',u'2501',u'11200' ,u'12049',u'12576',u'18583']),( u'1000',[u'8671',u'955',u'1012',u'1020 ',u'1378',u'2413',u'7699',u'10276',u'12625',u'12667'])]]

它从键0、1开始,然后跳到10,然后跳到100,然后是1000。它应该从0-5升序。有人可以告诉我我在做什么错吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在对字符串进行排序-如输出上的u前缀所示(对于Unicode,并不重要)。因此,它作为字符串测试时,102早。

将所有值映射为整数,然后再使用它们,您会没事的。