PySpark RDD SortByKey () не работает должным образом - PullRequest
0 голосов
/ 10 марта 2019

Я хочу отсортировать имеющееся у меня СДР, которое содержит диапазон ключей 0-49995, такой что (0, значение), ..., (49995, значение).

Я хочу отсортироватьэто в порядке возрастания, и я использую функцию 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 голосов
/ 10 марта 2019

Вы сортируете строки - как показано префиксом u на выходе (для Unicode это не так важно).Поэтому он работает так, как 10 предшествует 2 при тестировании в виде строки.

Сопоставьте все ваши значения с целыми числами, прежде чем работать с ними, и все будет в порядке.

...