小编Dat*_*ist的帖子

如何解决 apache_beam.internal.clients.dataflow.dataflow_v1b3_messages.TypeValueValuesEnum 类上的酸洗错误?

当我远程运行数据管道时,会引发 PicklingError:数据管道是使用 Beam SDK for Python 编写的,并且我在 Google Cloud Dataflow 之上运行它。当我在本地运行时,管道工作正常。

以下代码生成 PicklingError:这应该会重现该问题

import apache_beam as beam
from apache_beam.transforms import pvalue
from apache_beam.io.fileio import _CompressionType
from apache_beam.utils.options import PipelineOptions
from apache_beam.utils.options import GoogleCloudOptions
from apache_beam.utils.options import SetupOptions
from apache_beam.utils.options import StandardOptions

if __name__ == "__main__":
  pipeline_options = PipelineOptions()
  pipeline_options.view_as(StandardOptions).runner = 'BlockingDataflowPipelineRunner'
  pipeline_options.view_as(SetupOptions).save_main_session = True
  google_cloud_options = pipeline_options.view_as(GoogleCloudOptions)
  google_cloud_options.project = "project-name"
  google_cloud_options.job_name = "job-name"
  google_cloud_options.staging_location = 'gs://path/to/bucket/staging'
  google_cloud_options.temp_location = 'gs://path/to/bucket/temp'
  p = beam.Pipeline(options=pipeline_options)
  p.run()
Run Code Online (Sandbox Code Playgroud)

下面是回溯开始和结束的示例:

WARNING: Could not acquire lock C:\Users\ghousains\AppData\Roaming\gcloud\credentials.lock …
Run Code Online (Sandbox Code Playgroud)

gcloud google-cloud-dataflow apache-beam

5
推荐指数
1
解决办法
5133
查看次数