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)開始()> > >抑製=收購()> > >打印(結果)取消了