मेरे पास इस तरह एक RDD है

[('a', [('d2', 1), ('d1', 1)]),
 ('addition', [('d2', 1)]),
 ('administrative', [('d1', 1)]),
 ('also', [('d1', 1)])]

मैं एक आउटपुट की तरह दिखना चाहता हूँ

a#d2:1;d1:1
addition#d2:1
administrative#d1:1
also#d1:1

मैं आउटपुट प्राप्त करने के लिए पहले ब्रैकेट को हटाने का प्रयास कर रहा था

rdd_new.map(lambda x: re.sub('\(|\)', '', str(x)))
0
abhishek gupta 11 फरवरी 2021, 04:57

1 उत्तर

सबसे बढ़िया उत्तर

आप उपयुक्त स्ट्रिंग विधियों का उपयोग करके प्रत्येक rdd प्रविष्टि को एक स्ट्रिंग में मैप कर सकते हैं:

result = rdd.map(lambda r: r[0] + '#' + ';'.join(['%s:%d' % (i[0], i[1]) for i in r[1]]))

result.collect()
# ['a#d2:1;d1:1', 'addition#d2:1', 'administrative#d1:1', 'also#d1:1']
1
mck 11 फरवरी 2021, 19:27
क्या हम d1 से पहले d2 प्राप्त कर सकते हैं जैसे #d1:1;d2:1
 – 
abhishek gupta
14 फरवरी 2021, 16:57
आप क्रमबद्ध कर सकते हैं: result = rdd.map(lambda r: r[0] + '#' + ';'.join(['%s:%d' % (i[0], i[1]) for i in sorted(r[1])]))
 – 
mck
14 फरवरी 2021, 18:16