Query возвращает непустой набор данных в веб-интерфейсе bigquery, но пустой набор в скрипте Python

1

Я запустил запрос на сайте BigQuery, и он возвратил 201 строку. Я выполняю тот же запрос в скрипте Python, и он возвращает пустой набор данных. Но имена столбцов возвращаются правильно.

from google.cloud import bigquery
from google.oauth2 import service_account
from pandas import*

credentials = service_account.Credentials.from_service_account_file(
    'service-acc-creds.json')
project_id = 'coral-silicon-237417'
client = bigquery.Client(credentials= credentials,project=project_id)
query = """
  SELECT
  *
FROM
  'fh-bigquery.reddit.top25million' 
  WHERE REGEXP_CONTAINS(title, r'(?i)\bVonnegut\b') OR REGEXP_CONTAINS(title, r'(?i)\bKurt Vonnegut\b')
  ORDER BY score DESC;"""

query_job = client.query(query)
results = query_job.result().to_dataframe() 
print(results.to_string()) 
  • 1
    Я думаю, что если вы запустите results = query_job.result() , errors свойства будут заполнены в случае, если что-то пошло не так. Вы можете попробовать напечатать print(results.errors) чтобы проверить, правильно ли выполняется запрос.
Теги:
google-bigquery

2 ответа

0
Лучший ответ

Экранирование в Python актуально здесь:

client.query("""SELECT COUNT(*) c FROM 'fh-bigquery.reddit.top25million'""")
2267097

client.query(
"""SELECT COUNT(*) c FROM 'fh-bigquery.reddit.top25million' 
WHERE REGEXP_CONTAINS(title, r'(?i)\bVonnegut\b')"""
)
0

client.query(
r"""SELECT COUNT(*) c FROM 'fh-bigquery.reddit.top25million' 
WHERE REGEXP_CONTAINS(title, r'(?i)\bVonnegut\b')"""
)
201

client.query(
"""SELECT COUNT(*) c FROM 'fh-bigquery.reddit.top25million' 
WHERE REGEXP_CONTAINS(title, r'(?i)\\bVonnegut\\b')"""
)
201
-2

У меня та же проблема. В запросе просто нечего убежать.

query_job = client.query(r"""
SELECT * FROM 'fulfillment-dwh-production.curated_data_shared.vendors' LIMIT 100""")
results = query_job.result()
df = results.to_dataframe()
print(df.to_string()) 

результат: пустой DataFrame

Понятия не имею, что я не прав.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню