2024-05-15 04:45:51 发布
网友
我的问题和这个链接上的问题完全一样:Spark: Expansion of RDD(Key, List) to RDD(Key, Value),结果证明答案是正确的。你知道吗
问题是如何转变RDD,例如:
(1, List(1, 2, 3))
进入
(1,1) (1,2) (1,3)
但是,我很想了解lambda函数在做什么,这样我就不会盲目地复制和粘贴了。谁能解释一下这是怎么回事吗?你知道吗
在rdd.flatMap(lambda x: map(lambda e: (x[0], e), x[1]))函数中:
rdd.flatMap(lambda x: map(lambda e: (x[0], e), x[1]))
map(lambda e: (x[0], e), x[1])
与以下列表相同:
[ (x[0], e) for e in x[1] ]
对于示例数据,它生成一个元组列表(1,1)、(1,2)和(1,3),然后使用flatMap将每个项转换为它们自己的RDD元素。你知道吗
对于这个特殊的问题,使用flatMapValues更简单:
rdd.flatMapValues(lambda x:x).collect() #[(1, 1), (1, 2), (1, 3)]
在
rdd.flatMap(lambda x: map(lambda e: (x[0], e), x[1]))
函数中:与以下列表相同:
对于示例数据,它生成一个元组列表(1,1)、(1,2)和(1,3),然后使用flatMap将每个项转换为它们自己的RDD元素。你知道吗
对于这个特殊的问题,使用flatMapValues更简单:
相关问题 更多 >
编程相关推荐