作为学习过程的一部分,我正在浏览一个现有的Spark代码,我遇到了以下代码:
enPages.map(lambda x: x.split(" "))\
.map(lambda x: (x[2], int(x[3])))\
.reduceByKey(lambda x, y: x + y, 40)\
.collect()
我对reduceByKey和lambda的工作原理有一个基本的了解,但是在上面的代码中,我没有在reduceByKey/lambda函数中得到'40'的实用程序。任何澄清都将是感激的。
谢了,莎茜
PS:我试着通过删除“40”来运行代码,并比较输出,结果发现只是键/值对的顺序发生了变化,但对于给定的键,值的计数是最终输出是相同的。
1条答案
按热度按时间gkl3eglg1#
这是关于一个你可以在reduceByKey上进行的重新分区。
功能:
在这段代码中,你在运行lambda代码,你已经知道了累加器x和y的总和,40是要创建的分区的数量,来处理这个执行。
如果你想创建一个新的分区数量而不需要做额外的洗牌,这是非常有用的。