Получение больших наборов данных в Cloud Datalab

Можно ли получить большие наборы данных в панде DataFrame?

Мой набор данных ок. 1,5 Гб несжатый (вход для кластеризации), но когда я пытаюсь выбрать содержимое таблицы, используя bq.Query(...) это вызывает исключение:

RequestException: Response too large to return. Consider setting allowLargeResults to true in your job configuration. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors

Глядя на https://cloud.google.com/bigquery/querying-data?hl=en котором говорится,

Вы должны указать таблицу назначения.

Такое ощущение, что единственное место для отправки больших запросов - это другая таблица (а затем нажмите "Экспорт в GCS" и загрузите).

Также будет (возможно большая обратная запись), поскольку классифицированные строки записываются обратно в базу данных.

Тот же набор данных отлично работает на моем 16-гигабайтном ноутбуке (считанные минуты), но я собираюсь перейти на Datalab, когда наши данные перемещаются в облако.

Спасибо большое, любая помощь приветствуется

1 ответ

Решение

Если у вас уже есть результаты в таблице, вы можете просто использовать Table.to_dataframe()

В противном случае вам нужно будет выполнить Query, используя execute() с именем таблицы назначения, указанным, как вы отметили, и параметром allow_large_results=True (после чего вы можете выполнить вызов to_dataframe (), как указано выше).

Обратите внимание, что у вас могут быть проблемы с этим; виртуальная машина по умолчанию, на которой работает ядро ​​Python, довольно проста. Вы можете развернуть более способную виртуальную машину, используя параметры URL; например:

В то же время, как уже упоминалось, вы можете развернуть Datalab на большую виртуальную машину по некоторым параметрам URL. Например:

http://datalab.cloud.google.com?cpu=2&memorygb=16
Другие вопросы по тегам