使用python进行Spark:如何解决Stage x包含一个非常大的任务(xxx KB).建议的最大任务大小为100 KB [英] Spark using python: How to resolve Stage x contains a task of very large size (xxx KB). The maximum recommended task size is 100 KB

查看:338
本文介绍了使用python进行Spark:如何解决Stage x包含一个非常大的任务(xxx KB).建议的最大任务大小为100 KB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚创建了range(1,100000)的python列表.

I've just created python list of range(1,100000).

使用SparkContext完成以下步骤:

Using SparkContext done the following steps:

a = sc.parallelize([i for i in range(1, 100000)])
b = sc.parallelize([i for i in range(1, 100000)])

c = a.zip(b)

>>> [(1, 1), (2, 2), -----]

sum  = sc.accumulator(0)

c.foreach(lambda (x, y): life.add((y-x)))

发出以下警告:

ARN TaskSetManager:第3阶段包含一个非常大的任务(4644 KB).建议的最大任务大小为100 KB.

如何解决此警告?有什么方法可以处理尺寸吗?而且,这会影响大数据的时间复杂度吗?

How to resolve this warning? Is there any way to handle size? And also, will it affect the time complexity on big data?

推荐答案

扩展@ leo9r评论:考虑不使用python range,而是使用sc.range

Expanding @leo9r comment: consider using not a python range, but sc.range https://spark.apache.org/docs/1.6.0/api/python/pyspark.html#pyspark.SparkContext.range.

因此,避免了将庞大的清单从驱动程序转移到执行程序.

Thus you avoid transfer of huge list from your driver to executors.

当然,此类RDD通常仅用于测试目的,因此您不希望广播它们.

Of course, such RDDs are usually used for testing purposes only, so you do not want them to be broadcasted.

这篇关于使用python进行Spark:如何解决Stage x包含一个非常大的任务(xxx KB).建议的最大任务大小为100 KB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆