У меня довольно сложная структура данных 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 () я получаю неверный нод / строковую ошибку.Я понимаю, почему это может быть, но я все еще не уверен, как получить доступ к словарю и значению, следующему за ним внутри кортежа.