bq.py Не результаты пейджинга

Мы работаем над написанием обертки для bq.py и имеем некоторые проблемы с наборами результатов размером более 100 тыс. Строк. Похоже, что в прошлом это отлично работало (у нас были проблемы с ответами на BigQuery Incomplete Query Replies on Odd Pempties ). Возможно, я не понимаю ограничения, указанные на странице документа ?

Например:

#!/bin/bash for i in `seq 99999 100002`; do bq query -q --nouse_cache --max_rows 99999999 "SELECT id, FROM [publicdata:samples.wikipedia] LIMIT $i" > $i.txt j=$(cat $i.txt | wc -l) echo "Limit $i Returned $j Rows" done 

Доходность (обратите внимание, что есть 4 строки форматирования):

 Limit 99999 Returned 100003 Rows Limit 100000 Returned 100004 Rows Limit 100001 Returned 100004 Rows Limit 100002 Returned 100004 Rows 

В нашей оболочке мы напрямую обращаемся к API:

 while row_count < total_rows: data = client.apiclient.tabledata().list(maxResults=total_rows - row_count, pageToken=page_token, **table_dict).execute() # If there are more results than will fit on a page, # you will recieve a token for the next page page_token = data.get('pageToken', None) # How many rows are there across all pages? total_rows = min(total_rows, int(data['totalRows'])) # Changed to use get(data[rows],0) raw_page = data.get('rows', []) 

В этом случае мы ожидаем получить токен, но никто не возвращается.

2 Solutions collect form web for “bq.py Не результаты пейджинга”

жаль, что мне потребовалось немного времени, чтобы вернуться к вам.

Я смог идентифицировать ошибку, которая существует на стороне сервера, вы бы увидели это с клиентом Java, а также с клиентом python. На следующей неделе мы планируем выпустить исправление. Ваш клиент должен начать вести себя правильно, как только это произойдет.

Кстати, я не уверен, знаете ли вы об этом уже или нет, но есть целый автономный клиент python, который вы можете использовать для доступа к API из python. Я думал, что это может быть немного более удобным для вас, чем клиент, который распространяется как часть bq.py. На этой странице вы найдете ссылку: https://developers.google.com/bigquery/client-libraries

Я могу воспроизвести поведение, которое вы видите, с помощью командной строки bq. Это похоже на ошибку, я посмотрю, что я могу сделать, чтобы исправить это.

Одна вещь, которую я заметил о данных, которые вы запрашивали, заключалась в том, что выбор только поля id и ограничение количества строк около 100 000. Это дает около 1 млн. Данных, поэтому сервер, скорее всего, не будет разбивать на страницы результаты. Выбор большего объема данных заставит сервер разбиваться на страницы, поскольку он не сможет вернуть все результаты в один ответ. Если вы сделали выбор * для 100 000 строк samples.wikipedia, вы получите ~ 50M назад, что должно быть достаточно, чтобы начать видеть, что происходит разбиение на страницы.

Вы видите слишком мало результатов, полученных от клиента python, или вы были удивлены тем, что no page_token не был возвращен для вашего запроса sample.wikipedia?

  • Paginating BigQuery
  • Как управлять ошибками API Google в Python
  • Пропаривание вставки / вставкаВсегда - длительная задержка?
  • Получение ошибки: redirect_uri_mismatch URI перенаправления в запросе: http: // localhost: 8080 / oauth2callback не соответствует зарегистрированному URI редиректа
  • При доступе к Bigquery с использованием API Python в чем отличие использования API-интерфейса google и gcloud
  • формат timestamp в google bigquery проигрывает
  • Как добавить к таблице в BigQuery с помощью API Python BigQuery
  • Усечение таблицы BigQuery перед потоковой обработкой не работает
  •  
    Interesting Posts for Van-Lav

    Загрузка изображений в каталог в виде набора данных Tensorflow

    Как проверить модель Django с помощью pytest?

    Pyspark –py-файлы не работают

    Ошибка Webdriver: «Отсутствует предупреждение» после того, как UnexpectedAlertPresentException выбрано

    Многопроцессорный пул в Python – используется только один процессор

    UnicodeWarning: специальные символы в Tkinter

    Могут ли устанавливать установки PP, не указанные в setup.py во время установки?

    расположение боке для построения сюжета и виджета

    Как получить файлы из Salesforce с помощью Python

    Альтернатива для оператора «in» для вложенных списков

    pytz.timezone показывает странные результаты для Азии / Калькутты?

    Как создать байты или bytearray заданной длины, заполненные нулями в Python?

    Что не так с использованием Django-шаблонов использования if's?

    nosetest – получить список неудачных тестов (без дополнительного вывода)

    самый полный путь для смешивания двух списков в python

    Python - лучший язык программирования в мире.