在元组RDD的元组中访问dict

时间:2019-03-20 17:56:18

标签: python pyspark

我有一个相当复杂的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()

但是在这一点上,我无法访问元组第二部分的字典,或者会出现NoneType错误,或者如果使用ast.literal_eval()则会出现格式错误的节点/字符串错误。我知道为什么会这样,但是我仍然不确定如何在元组中访问字典及其后的值。

0 个答案:

没有答案