доступ к dict в кортеже кортежей RDD - PullRequest
0 голосов
/ 20 марта 2019

У меня довольно сложная структура данных RDD для использования в алгоритме PageRank (это часть проблемы с домашней работой):

[('4', (0.09090909090909091, ({'1': 1, '2': 1}, 2))),
 ('10', (0.09090909090909091, ({'5': 1}, 1))),
 ('3', (0.09090909090909091, ({'2': 1}, 1))),
 ('6', (0.09090909090909091, ({'2': 1, '5': 1}, 2))),
 ('7', (0.09090909090909091, ({'2': 1, '5': 1}, 2))),
 ('1', (0.09090909090909091, None)),
 ('8', (0.09090909090909091, ({'2': 1, '5': 1}, 2))),
 ('9', (0.09090909090909091, ({'2': 1, '5': 1}, 2))),
 ('2', (0.09090909090909091, ({'3': 1}, 1))),
 ('5', (0.09090909090909091, ({'4': 1, '2': 1, '6': 1}, 3))),
 ('11', (0.09090909090909091, ({'5': 1}, 1)))]

Как часть алгоритма, мне нужно только изменить это число, но мне нужно иметь доступ к каждой части записей.В настоящий момент я могу добраться до финального кортежа (ов) с чем-то вроде:

testRDD.map(lambda x: (x[0], x[1][1])).collect()

, но на данный момент я не могу получить доступ к словарю второй части кортежа, получая NoneTypeerror или, если с помощью ast.literal_eval () я получаю неверный нод / строковую ошибку.Я понимаю, почему это может быть, но я все еще не уверен, как получить доступ к словарю и значению, следующему за ним внутри кортежа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...