擅长:python、mysql、java
<p>在我看来,一个更具可读性的等价物是带有两个lambdas的aggregateByKey:</p>
<pre><code>rdd1 = rdd1 \
.mapValues(lambda v: (v, 1)) \
.reduceByKey(lambda a,b: (a[0]+b[0], a[1]+b[1]))
</code></pre>
<p>这样,整个平均值计算将是:</p>
<pre><code>avg_by_key = rdd1 \
.mapValues(lambda v: (v, 1)) \
.reduceByKey(lambda a,b: (a[0]+b[0], a[1]+b[1])) \
.mapValues(lambda v: v[0]/v[1]) \
.collectAsMap()
</code></pre>