當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pyspark inheritable_thread_target用法及代碼示例


本文簡要介紹 pyspark.inheritable_thread_target 的用法。

用法:

pyspark.inheritable_thread_target(f)

返回線程目標包裝器,建議在啟用固定線程模式時在PySpark中使用。包裝函數在調用原始線程目標之前,會繼承 JVM 線程特有的可繼承屬性,例如 InheritableThreadLocal

另外,請注意,當線程在 Python 端完成時,固定線程模式不會關閉從 Python 到 JVM 的連接。使用此包裝器,Python garbage-collects Python 線程實例並關閉正確完成 JVM 線程的連接。

當固定線程模式關閉時,它返回原始的 f

版本 3.2.0 中的新函數。

參數

f函數

原始線程目標。

注意

此 API 是實驗性的。

重要的是要知道它在您裝飾它時捕獲本地屬性,而 InheritableThread 在線程啟動時捕獲。因此,當您想要捕獲本地屬性時,鼓勵對其進行裝飾。

例如,當您在此處定義函數而不是調用時,將捕獲當前 Spark 上下文中的本地屬性:

>>> @inheritable_thread_target
... def target_func():
...     pass  # your codes.

如果之後您對本地屬性有任何更新,它不會反映到 target_func() 中的 Spark 上下文中。

下麵的示例盡可能地模仿 JVM 線程的行為:

>>> Thread(target=inheritable_thread_target(target_func)).start()

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.inheritable_thread_target。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。