Pyspark MapReduce对象列表

2024-05-19 15:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个对象列表定义为:

class AD:
    def __init__(self, name=None, impressions=0):
        self.name = name
        self.impressions= impressions

现在,有没有一种方法可以使用map reduce方法根据名称获得更新的广告列表分组,以及印象的总和。例如:

^{pr2}$

我知道我不必使用map reduce函数来获得结果。如果使用map reduce,如何获得以下结果:

newList[0].name = "BlackFriday"
newList[0].impressions = 62

newList[1].name = "CyberMonday"
newList[1].impressions = 35

谢谢你的帮助。在


Tags: 对象方法nameselfnonemapreduce列表
1条回答
网友
1楼 · 发布于 2024-05-19 15:53:30

以下代码未经测试,因为我没有可用的环境

您的意见:

ad1 = AD("BlackFriday",29)
ad2 = AD("BlackFriday",33)
ad3 = AD("CyberMonday",35)

为了能够使用map+reduce,您需要一些RDD(为此,您可以使用parallelize

^{pr2}$

然后map将rdds转换为(name, impressions)的元组,这样就可以通过键来减少after

^{3}$

然后您map返回一个AD对象并调用collect以列表形式获得结果

adList = rddReduced.map(lambda (n,i): AD(n,i)).collect()

相关问题 更多 >