可能是由于缺少访问Google服务所需的凭据,因此需要提供合适的设置。以下是示例代码:
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
# 设置访问 Google 服务所需的凭据路径
options = PipelineOptions(
runner='DirectRunner',
# 如果您使用了默认凭据,则无需指定以下选项
# 如果需要手动指定,请根据实际情况修改路径
service_account_email='your-service-account-email@your-project-id.iam.gserviceaccount.com',
service_account_private_key_file='path/to/your/private_key.json',
)
# 创建一个作业来读取PubSub主题
with beam.Pipeline(options=options) as p:
lines = (
p
| 'Read from PubSub' >> beam.io.gcp.pubsub.ReadFromPubSub(
topic='',
with_attributes=True,
)
| 'Print messages' >> beam.Map(print)
)
# 运行作业以测试是否解决了问题
p.run()
如果您仍然无法正常运行作业,请确保您的本地运行器已正确设置并且您具有足够的权限来访问所需的资源。