Pyspark:如何确保您的udf不会分布在不同的工作人员上

时间:2018-08-29 09:56:01

标签: apache-spark pyspark cluster-computing

我在pyspark中写了一个udf,它使用带有索引的“ for”循环(它通常只有几十次迭代,因此不会使我的代码变慢太多),并且所有需要工作的功能都传递给了它。

但是,有时我的索引超出范围错误,有时却没有。 (该功能基本上只能在50%的时间内工作。)

我的猜测是,该错误来自以下事实:执行此udf所需的不同任务可能分布在不同的节点之间,这可能会使索引混乱。

是否有办法告诉Spark我希望这些udf在单个工作程序上执行?

我之所以没有在此处发布代码,是因为我认为它不会帮上忙,因为它相当复杂且行很多。

希望有人对为什么这种“索引超出范围”错误仅在一半时间内发生有所了解。

另外,如果有人可以告诉我如何调试它,方法是将索引打印到屏幕上,或者通过Yarn rescource管理器查看工作节点上的打印索引,同样有帮助。

亲切的问候, 查尔斯

0 个答案:

没有答案