gpt4 book ai didi

python - 带有 DirectRunner (SUBPROCESS_SDK) 的 Apache Beam 只使用一个工作人员,我如何强制它使用所有可用的工作人员?

转载 作者:行者123 更新时间:2023-12-05 06:23:02 25 4
gpt4 key购买 nike

以下代码:

def get_pipeline(workers):
pipeline_options = PipelineOptions(['--direct_num_workers', str(workers)])
return beam.Pipeline(options=pipeline_options,
runner=fn_api_runner.FnApiRunner(
default_environment=beam_runner_api_pb2.Environment(
urn=python_urns.SUBPROCESS_SDK,
payload=b'%s -m apache_beam.runners.worker.sdk_worker_main'
% sys.executable.encode('ascii'))))

with get_pipeline(4) as pipeline:
_ = (
pipeline
| 'ReadTestData' >> beam.io.ReadFromParquet(input_files, columns=all_columns)
| "write" >> beam.io.WriteToText("/tmp/txt2")
)

只使用 4 个可用的 worker 中的一个,并且只生成一个大输出文件(即使有很多输入文件)。

如何强制 Beam 管道并行工作,即如何强制每个输入文件由不同的工作人员分别处理?

最佳答案

您使用的是哪个版本的光束?

我对 beam 2.16.0 有同样的问题,但版本 2.17.0 似乎具有预期的行为。

您可能想尝试使用此版本,同时保持您的代码不变。

关于python - 带有 DirectRunner (SUBPROCESS_SDK) 的 Apache Beam 只使用一个工作人员,我如何强制它使用所有可用的工作人员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58699555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com