как загрузить тип dict напрямую в rdd - PullRequest
0 голосов
/ 19 мая 2018

У меня есть диктория в python

{'609232972': 4, '975151075': 4, '14247572': 4, '2987788788': 4, '3064695250': 2}

как я могу напрямую загрузить это в rdd, не теряя пару ключ-значение?

Когда я загружаю это так

usr_group = sc.parallelize(partition)
print(usr_group.take(5))

Я просто разбиваю пару значений ключа и выдаю

['609232972', '975151075', '14247572', '2987788788', '3064695250']

Я ожидаю, что СДР разорвется на

{'609232972': 4, '975151075': 4, '14247572': 4, '2987788788': 4, '3064695250': 2}

, чтобы я мог обработать значение ключапара вместе

1 Ответ

0 голосов
/ 19 мая 2018

Не уверен, что вы хотите, чтобы rdd имел строку, но есть три варианта:

my_dict = {'609232972': 4, '975151075': 4, '14247572': 4, '2987788788': 4, '3064695250': 2}
rdd1 = sc.parallelize([my_dict])
rdd2 = sc.parallelize(list(my_dict.iteritems()))
rdd3 = rdd2.map(lambda x: (dict([x])))
print rdd1.collect()
print rdd2.take(4)
print rdd3.take(4)

[{'2987788788': 4, '975151075': 4, '3064695250': 2,' 14247572 ': 4,' 609232972 ': 4}]

[(' 2987788788 ', 4), (' 975151075 ', 4), (' 3064695250 ', 2), ('14247572 ', 4)]

[{' 2987788788 ': 4}, {' 975151075 ': 4}, {' 3064695250 ': 2}, {' 14247572 ': 4}]

...