pyspark.SparkContext.setJobGroup

SparkContext。 setJobGroup ( groupId:str,描述:str,interruptOnCancel:bool= )→没有

分配一个组ID的所有工作开始由这个线程,直到组ID设置为不同的值或清除。

通常,一个执行单元在一个应用程序由多个引发操作或工作。应用程序员可以使用这种方法来组织一起工作,给一组描述。一旦设置,火花web UI将与这组助理这样的工作。

应用程序可以使用SparkContext.cancelJobGroup ()在这组取消所有正在运行的工作。

笔记

如果工作小组interruptOnCancel被设置为true,那么工作取消将导致Thread.interrupt()被称为工作的执行人线程。这是有用的帮助确保任务能够及时停止,但由于HDFS - 1208在默认情况下是关闭的,在HDFS可能回应Thread.interrupt()节点标记为死亡。

如果你运行并行工作,使用pyspark.InheritableThread线程本地的产业。

例子

> > >进口线程> > >时间进口睡眠> > >pyspark进口InheritableThread> > >结果=“未设置”> > >=线程()> > >defmap_func(x):睡眠(One hundred.)提高RuntimeError(“任务应该被取消了”)> > >defstart_job(x):全球结果试一试:scsetJobGroup(“job_to_cancel”,“描述”)结果=sc并行化(范围(x))地图(map_func)收集()除了异常作为e:结果=“取消”释放()> > >defstop_job():睡眠(5)sccancelJobGroup(“job_to_cancel”)> > >抑制=收购()> > >抑制=InheritableThread(目标=start_job,arg游戏=(10,))开始()> > >抑制=InheritableThread(目标=stop_job)开始()> > >抑制=收购()> > >打印(结果)取消了