当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。