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):…全球結果…試一試:…sc。setJobGroup(“job_to_cancel”,“描述”)…結果=sc。並行化(範圍(x))。地圖(map_func)。收集()…除了異常作為e:…結果=“取消”…鎖。釋放()> > >defstop_job():…睡眠(5)…sc。cancelJobGroup(“job_to_cancel”)> > >抑製=鎖。收購()> > >抑製=InheritableThread(目標=start_job,arg遊戲=(10,))。開始()> > >抑製=InheritableThread(目標=stop_job)。開始()> > >抑製=鎖。收購()> > >打印(結果)取消了