加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何将键值对减少到键和值列表?

发布时间:2020-12-20 11:38:51 所属栏目:Python 来源:网络整理
导读:让我们假设,我在Spark中有一个键值对,如下所示. [ (Key1,Value1),(Key1,Value2),Vaue3),(Key2,Value4),Value5) ] 现在我想减少这个,就像这样. [ (Key1,[Value1,Value2,Value3]),[Value4,Value5]) ] 也就是说,从Key-Value到Key-List of Values. 我如何使用map
让我们假设,我在Spark中有一个键值对,如下所示.

[ (Key1,Value1),(Key1,Value2),Vaue3),(Key2,Value4),Value5) ]

现在我想减少这个,就像这样.

[ (Key1,[Value1,Value2,Value3]),[Value4,Value5]) ]

也就是说,从Key-Value到Key-List of Values.

我如何使用map和reduce函数在python或scala中做到这一点?

解决方法

collections.defaultdict可以是解决方案 https://docs.python.org/2/library/collections.html#collections.defaultdict

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> for key,value in [('Key1','Value1'),('Key1','Value2'),'Vaue3'),('Key2','Value4'),'Value5') ]:
...     d[key].append(value)

>>> print d.items()
[('Key2',['Value4','Value5']),[ 'Value1','Value2','Vaue3'])]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读