pyspark reduceByKey和lambda

jvlzgdj9  于 2022-11-01  发布在  Spark
关注(0)|答案(1)|浏览(162)

作为学习过程的一部分,我正在浏览一个现有的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”来运行代码,并比较输出,结果发现只是键/值对的顺序发生了变化,但对于给定的键,值的计数是最终输出是相同的。

gkl3eglg

gkl3eglg1#

这是关于一个你可以在reduceByKey上进行的重新分区。
功能:

.reduceByKey(lambda x, y: x + y, 40)

在这段代码中,你在运行lambda代码,你已经知道了累加器x和y的总和,40是要创建的分区的数量,来处理这个执行。
如果你想创建一个新的分区数量而不需要做额外的洗牌,这是非常有用的。

相关问题