【发布时间】:2016-02-07 08:03:50
【问题描述】:
我想做的是分别计算每个列表,例如,如果我有 5 个列表 ([1,2,3,4,5,6],[2,3,4,5,6],[3,4,5,6],[4,5,6],[5,6]) 并且我想获得没有 6 个的 5 个列表,我会这样做:
data=[1,2,3,4,5,6]+[2,3,4,5,6,7]+[3,4,5,6,7,8]+[4,5,6,7,8,9]+[5,6,7,8,9,10]
def function_1(iter_listoflist):
final_iterator=[]
for sublist in iter_listoflist:
final_iterator.append([x for x in sublist if x!=6])
return iter(final_iterator)
sc.parallelize(data,5).glom().mapPartitions(function_1).collect()
然后剪切列表,以便我再次获得第一个列表。 有没有办法简单地分离计算?我不希望这些列表混合在一起,它们的大小可能不同。
谢谢
菲利普
【问题讨论】:
-
并不总是我只想并行计算列表的最后一个元素。并行化的条目是任何工作,这适用于相同大小的列表。如果有办法不使用并行化并直接给出分区,那就太好了。我只是希望它计算彼此分开的不同列表并给我不同的结果,这些结果也是列表
标签: python apache-spark pyspark partition