Как преобразовать ключ в INT из строки в карте уменьшить - PullRequest
0 голосов
/ 24 марта 2020

Я пытался перечислить все узлы, которые подключены к узлу, а затем записать его в файл. Проблема, с которой я сталкиваюсь, заключается в том, что при записи пар ключ-значение в файл ключ рассматривается как строка, и, следовательно, когда я применяю sortbyKey (), он записывает вывод в виде: 1--4,3

10--6,7,9

2--3,6

3--1,2,4,6

4--1,3,5,7,6

5--8,9,4,6

6--5,4,2,3,10

7--10,8,4

8--7,9,5

второй ряд - это узел 10, который фактически должен находиться в конце. Может кто-нибудь, пожалуйста, помогите. мне решить это. Я прилагаю код ниже:

graph= sc.textFile("/tmp/data/graph/graphinp.txt")

def ne(line):
    conn = line.split()
    vertex = conn[0]
    edge = conn[1]
    return(vertex, edge)

rdd1=graph.map(ne)
rdd=rdd1.map(lambda x: (x[0], x[1]))
swap=rdd1.map(lambda x: (x[1], x[0]))
complete=swap.union(rdd)

connectednodes=complete.reduceByKey(lambda x, y: x+','+ y)
order = connectednodes.sortByKey().collect()

for i in range(len(order)):
    print((order[i][0])+'--'+(order[i][1])+'\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...