首页 > 解决方案 > 由于 pyspark 惰性评估导致的错误

问题描述

from pyspark import SparkContext, SparkConf


conf = SparkConf().setAppName("Ark API Stats")
sc = SparkContext(conf=conf)


a = sc.parallelize([1,2,3,4,5,6,7,8,9,10])
count = [2,4]
array = [a.filter(lambda x: x < y) for  y in count]

results = sc.union(array).collect()
print(results)

上面的代码会返回[1,2,3,1,2,3],而我想要的是[1,1,2,3]。看来a.filter(lambda x: x < y),y 将始终4作为 中的最后一个数字count。有什么解决办法吗?

标签: pythonapache-sparkpysparklazy-evaluation

解决方案


推荐阅读