def flatMap(f, li):
mapped = map(f, li)
flattened = flatten_single_dim(mapped)
yield from flattened
def flatten_single_dim(mapped):
for item in mapped:
for subitem in item:
yield subitem
回到我们的例子,快速检查一下是否正常:
res = flatMap(lambda x: range(1, x), [3,4,5])
print(list(res))
下面是PySpark在RDD上的
flatMap
示例:会有结果的
^{pr2}$与仅}(用于比较)。在
map
相反,后者将产生{flatMap
也只做了一个级别的“不需要”。换句话说,如果你有一个3d列表,它只会将其展平为2d列表。所以,我们要让我们的压扁机也这样做。在正如在评论中提到的,您所要做的就是调用内置的
map
,并创建一个平坦函数,并将它们链接在一起。方法如下:回到我们的例子,快速检查一下是否正常:
哪些输出:
^{pr2}$如你所愿。你应该做
flatMap(lambda tile: process_tile(tile, sample_size, grayscale), filtered_tiles)
(给定filtered_tiles
是一个iterable)。在另请注意,您可以在“local”模式下运行Spark,只需在rdd上调用
flatMap
。它可以很好地在你的本地机器上制作小东西的原型。然后,当您准备扩展时,您可以使用一些集群管理器钩住集群,并拥有需要剥离的TBs数据。在好吧。在
相关问题 更多 >
编程相关推荐