У меня есть Google App Engine, запускающий конвейер Cloud DataFlow. Этот конвейер должен записать окончательную коллекцию 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 lib
, apache_beam/io/gcp/bigquery.py
, загруженный в мою папку lib
, не содержит класса WriteToBigQuery
, а затем я получаю сообщение об ошибке 'module' object has no attribute 'WriteToBigQuery'
при запуске приложения на Google App Engine.
Есть ли у кого-нибудь идеи, как я могу получить право bigquery.py
?
apache_beam/io/gcp/bigquery.py
. Что вы видите в этом файле? - person Maximilian   schedule 12.02.2018