Получение больших наборов данных в 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