在 PySpark 中重新排列 RDD
Rearranging RDD in PySpark
我有这样的 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)))
您可以使用合适的字符串方法将每个 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']
我有这样的 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)))
您可以使用合适的字符串方法将每个 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']