3

我有一个触发 Cloud DataFlow 管道的 Google App Engine。该管道应该将最终的 PCollection 写入 Google BigQuery,但我找不到安装正确 apache_beam.io 依赖项的方法。

我在本地运行 Apache Beam 2.2.0 版。

项目结构遵循此博客文章中的代码。

这是相关的代码:

"WriteToBigQuery" >> beam.io.WriteToBigQuery(
            ("%s:%s.%s" % (PROJECT, DATASET, TABLE)),
            schema=TABLE_SCHEMA,
            create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED,
            write_disposition=beam.io.BigQueryDisposition.WRITE_APPEND
        )

当我在本地运行此代码时,beam.io.WriteToBigQuery()会正确调用。它是apache_beam/io/gcp/bigquery.py从我的虚拟环境中获取的。

但是我无法lib在部署应用程序随附的文件夹上安装此依赖项。

即使我有一个包含apache-beam[gcp]==2.2.0作为要求的要求文件,但当我运行时pip install -r requirements.txt -t libapache_beam/io/gcp/bigquery.py下载到我的lib文件夹中的文件不包含 class WriteToBigQuery,然后'module' object has no attribute 'WriteToBigQuery'在 Google App Engine 上运行应用程序时出现错误。

有谁知道我怎样才能得到正确的bigquery.py

4

1 回答 1

0

这不是很明显,但要在 App Engine 中运行,如博客文章中所述,有必要创建一个setup.py(即使您已经有一个),并在运行管道时requirements.txt通过命令行选项指向它。--setup_file ./setup.py

于 2019-12-11T01:19:13.477 回答