Amir
Amir

Reputation: 1087

Google Big Query from Python

I am trying to run a simple query on BigQuery from Python and follow this document. To set the client I generated the JSON file for my project via service account:

import pandas as pd
from google.cloud import bigquery
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]=*****
client = bigquery.Client()

QUERY = (
    'SELECT name FROM `mythic-music-326213.mytestdata.trainData` '
    'LIMIT 100')
query_job = client.query(QUERY)

However, I am getting the following error:

DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started

Technically, I want to be able to query my dataset from Python. Any help would be appreciated.

Upvotes: 0

Views: 1704

Answers (1)

Oleksandr Bushkovskyi
Oleksandr Bushkovskyi

Reputation: 825

I've tried your code snippet with my service account JSON file and dataset in my project. It worked as expected. Not clear why it's not working in your case.

Hovewer you can try to use service account JSON file directly like that:

import pandas as pd
from google.cloud import bigquery
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file('<path to JSON file>')
client = bigquery.Client(credentials=credentials)

QUERY = (
    'SELECT state FROM `so-project-a.test.states` '
    'LIMIT 100')
query_job = client.query(QUERY)

Upvotes: 2

Related Questions