gpt4 book ai didi

python - pyspark mapPartitions 函数是如何工作的?

转载 作者:IT老高 更新时间:2023-10-28 21:06:26 26 4
gpt4 key购买 nike

所以我正在尝试使用 Python (Pyspark) 来学习 Spark。我想知道函数 mapPartitions 是如何工作的。这就是它需要的输入和它给出的输出。我在互联网上找不到任何合适的例子。可以说,我有一个包含列表的 RDD 对象,如下所示。

[ [1, 2, 3], [3, 2, 4], [5, 2, 7] ] 

我想从所有列表中删除元素 2,如何使用 mapPartitions 来实现。

最佳答案

mapPartition 应该被认为是对分区而不是分区元素的映射操作。它的输入是当前分区的集合,它的输出将是另一组分区。

您传递给 map 操作的函数必须采用 RDD 的单个元素

您传递给 mapPartition 的函数必须采用您的 RDD 类型的可迭代对象并返回某个其他或相同类型的可迭代对象。

在您的情况下,您可能只想执行以下操作:

def filter_out_2(line):
return [x for x in line if x != 2]

filtered_lists = data.map(filterOut2)

如果你想使用 mapPartition,那就是:

def filter_out_2_from_partition(list_of_lists):
final_iterator = []
for sub_list in list_of_lists:
final_iterator.append( [x for x in sub_list if x != 2])
return iter(final_iterator)

filtered_lists = data.mapPartition(filterOut2FromPartion)

关于python - pyspark mapPartitions 函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com