Ошибка инициализации read_gbq для панд при использовании Dataflow - PullRequest
0 голосов
/ 20 мая 2019

Я выполняю задание потока данных, используя Python, который использует библиотеку pandas. Он неожиданно начал работать со следующей ошибкой:

Файл "/usr/local/lib/python2.7/dist-packages/pandas_gbq/auth.py", строка 305, в _try_credentials client = bigquery.Client (project = project_id, учетные данные = учетные данные)

Файл "/usr/local/lib/python2.7/dist-packages/google/cloud/bigquery/client.py", строка 161, в init self._connection = соединение (self, client_info = client_info)

Файл "/usr/local/lib/python2.7/dist-packages/google/cloud/bigquery/_http.py", строка 33, в init super (Соединение, self). init (client, client_info)

TypeError: init () принимает ровно 2 аргумента (дано 3)

Ошибка на этом шаге:

import pandas as pd  
data = pd.read_gbq(query=query, project_id=project, dialect='standard', private_key=credentials)

Мой установочный файл выглядит так:

install_requires=[
   'google-cloud-storage==1.11.0',
   'requests==2.19.1',
   'urllib3==1.23',
   'pandas-gbq==0.6.1',
   'pandas==0.23.4',
   'protobuf==3.6.0'
    ]

Это та же версия, что и у меня на локальном компьютере, где работает код. Никаких изменений не было внесено в задание, когда оно начало сбой. Он успешно работает на локальном компьютере, но я вижу проблему при запуске с Dataflowrunner. Я думаю, что это проблема зависимости. Есть ли документированные проблемы с какой-либо версией пакета, которую я использую? Или есть конкретные версии пакетов, которые мне нужно добавить в мой установочный файл?

1 Ответ

0 голосов
/ 23 мая 2019

Мне пришлось добавить версию BigQuery в мой установочный файл.

'google-cloud-bigquery==1.6.0'

Согласно документации Google для Python SDK 2.5, у работника Dataflow уже установлен BigQuery 0.25.0. Поскольку ранее я не указывал версию, я предполагаю, что это то, что выполнялось моей работой. Если была проблема с этой версией BigQuery, я все еще не уверен, почему ошибка только недавно начала происходить. Несмотря на это, указание 1.6.0 решило проблему.

...