python-3.x - 警告:apache_beam.options.pipeline_options:丢弃不可解析的参数
问题描述
我目前有代码:
gs_folder = sys.argv[1]
options = PipelineOptions(
runner='DataflowRunner',
project='xxx',
job_name=xxx{uuid.uuid4()}',
region='us-central1',
temp_location='xxx')
gfs = gcs.GCSFileSystem(options)
p = beam.Pipeline(options=options)
discover_empty = p | 'Filenames' >> beam.Create(gfs.match([gs_folder])[0].metadata_list) | \
'Reshuffle' >> beam.Reshuffle() | \
'Delete empty files' >> beam.ParDo(DeleteEmpty(gfs))
p.run()
此代码基于此处的问题。最终发生的是我在下面收到此错误:
WARNING:apache_beam.options.pipeline_options:Discarding unparseable args: ['gs://xx/xx']
这没有多大意义,因为这是我要执行此删除操作的文件夹。此外,看起来数据流作业确实成功运行,但应该删除的文件没有正确删除。我应该如何在这里传递管道选项 arg?
我也有几个关于这个过程的后续问题。看起来像是在beam.Create()
本地运行,然后切换到数据流。我怎样才能使管道的那部分在数据流上运行?
解决方案
确保您将标志传递为 --input=gs//... 该错误看起来像您的命令行调用无效,并且 gs 路径被解释为整个参数。
beam.Create 作为管道的一部分运行,但传递给它的参数是在本地计算的。要在管道中计算它,请使用 beam.Create(None) ,然后使用运行匹配逻辑的 DoFn。
推荐阅读
- typescript - 使用 Prettier Eslint 时找不到模块“@typescript-eslint/parser”
- python - Dask:在大数据帧上设置索引会导致处理期间的磁盘空间使用率很高
- cypress - Cypress.io - 使用 location.href 将用户重定向到同源会导致跨源错误
- python - 使用 Python 请求自动将文件上传到 Flask 环境
- python - 大熊猫中的奇怪字典
- android - 如何从安卓应用打开通知日志?
- cassandra - Cassandra 集群与 cassandra 环
- visual-studio-code - vs code 集成终端中 4 字节表情符号显示不正确
- kubernetes - Cluster Autoscaler 和 Horizontal Pod Autoscaler 一起工作
- wiremock - 第一次成功,第二次相同的请求错误存根响应