【发布时间】:2016-09-26 21:27:33
【问题描述】:
我正在使用 pyspark 在 RDD 上应用映射,然后进行 reduceByKey 转换。我尝试了以下两种语法,它们似乎都有效:
案例一:
my_rdd_out = my_rdd.map(lambda r: [r['my_id'], [[r['my_value']]]])\
.reduceByKey(lambda a, b: a+b)\
.map(lambda r: r[1])
案例2:
my_rdd_out = my_rdd.map(lambda r: (r['my_id'], [[r['my_value']]]))\
.reduceByKey(lambda a, b: a+b)\
.map(lambda r: r[1])
这里的 r 属于 from pyspark.sql import Row 类。
在情况 1 中,地图输出对在括号中;在情况 2 中,地图输出对在括号中。虽然两者都有效,但我想知道使用 [] 和 () 来表示稍后将成为 reduceByKey 输入的一对有什么区别吗?谢谢!
【问题讨论】: