GCP не может написать запрос Biq, используя to_gbq - PullRequest
0 голосов
/ 15 апреля 2020

Невозможно написать Biq Query, выполнив следующую ошибку.

Python 3.5.6 
pandas-gbq 0.13.1 
google-cloud-bigquery 1.24.0

ImportError: pandas -gbq требует google-cloud-bigquery: невозможно импортировать имя 'TimeoutGuard'

код:

sample_dataframe = pd.DataFrame(data_rows,columns['shop_name','category','nearest_station','telephone_number','address','DL_time'])
print(sample_dataframe)

sample_dataframe.to_gbq('NTT.aikidou2025', 'robotic-column-270803',if_exists = 'replace')

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Я пытался! Pip install google-cloud-bigquery == 1.10.1, и это решило ошибку, похоже, подходит для моей Python версии.

0 голосов
/ 15 апреля 2020

Хотя вы не размещали пакеты, импортированные и установленные в вашей среде, эта ошибка обычно связана с отсутствием необходимых пакетов.

Мне удалось воспроизвести ваш случай, используя метод Pandas и to_gbq успешно, без ошибок. Для своей попытки я использовал Jupyter Notebook в экземпляре Cloud AI с Python 3.7.

Сначала я установил в свою среду следующие пакеты:

!pip install --upgrade google-bigquery[pandas] --quiet
!pip install --upgrade pandas_gbq

Второй модуль ( pandas_gbq ) необходим, поскольку он не входит в пакет google-bigquery [pandas] , вы можете проверить документацию здесь .

Впоследствии в скрипте python необходимо импортировать pandas и bigquery . Я также создал фиктивный фрейм данных, чтобы воспроизвести случай. Как показано ниже:

import pandas as pd
from google.cloud import bigquery

records =[
    {
        "Name": "Alex",
        "Age": 25,
        "City":"New York"
    },
    {
        "Name": "Bryan",
        "Age": 27,
        "City":"San Francisco"

    }
]

dataframe = pd.DataFrame(
    records,columns=["Name","Age","City"])

print(dataframe)

И вывод:

    Name  Age           City
0   Alex   25       New York
1  Bryan   27  San Francisco

Наконец, я использовал to_gbq метод:

#to_gbq
dataframe.to_gbq('sample.pandas_bq_test',project_id="test-proj-261014",if_exists='append')

Это было хорошо выполнено, и фрейм данных был в BigQuery. Поэтому я рекомендую вам проверить выше, правильно ли вы установили все пакеты, которые я использовал. Кроме того, вы можете использовать pip show <name_of_the_package>, чтобы проверить, установлена ​​ли она и ее версия.

Обновление

Чтобы использовать BigQuery и Pandas с DataLab, можно использовать виртуальную среду Подробнее об этом здесь . Таким образом, гарантируется, что все необходимые python зависимости установлены и несовместимость не обнаружена.

Я выполнил следующие шаги для запуска вышеуказанного кода в DataLab.

  1. Создание экземпляра DataLab и подключение через http://localhost: 8081 / , следуя документации .
  2. Откройте новый блокнот и выберите Ядро Python 3

Выполните следующие команды, где - имя вашей виртуальной среды.

!pip install virtualenv
!virtualenv <your-env>
!source <your-env>/bin/activate
!<your-env>/bin/pip install google-cloud-bigquery

Сейчас вы сможете использовать import pandas в качестве pd и из google.cloud import bigquery . Я проверил с кодом, который я предоставил выше, и он работал. Дайте мне знать, если у вас возникнут проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...