Bonjour,
Je travaille depuis peu sous bigquery (google cloud platform). L'objectif est de faire du machine learning en python avec les tables présentes dans bigquery.
Je travaille sous le projet1 auquel est épinglé un autre projet qu'on nommera projet2. J'arrive sans problème à requeter les tables de projet2 mais ...
Lorsque je bascule sous jupyterlab pour faire ces mêmes requêtes et en stocker les résultats dans un dataframe pandas, je n'y arrive pas.
Voici le code:
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pandas as pd
from google.cloud import bigquery
redentials,project_id = google.auth.default()
print("credentials: {},project_id={}".format(credentials,project_id))
!bq ls
query = """
    SELECT
    col1,col2
    FROM `matabledansprojet2`
    LIMIT 10"""
 
query_job = client.query(query)
 
df = query_job.to_dataframe()
df

Voici la sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
credentials: <google.auth.compute_engine.credentials.Credentials object at 0x7f0b0c10dda0>,project_id=arf-datacentric1
  datasetId  
 ----------- 
  Table1dansProjet1   
  Table2dansProjet1
et une grosse erreur:
BadRequest: 400 POST https://bigquery.googleapis.com/bigq.../projet1/jobs: Invalid project ID 'aprojet1. Project IDs must contain 6-63 lowercase letters, digits, or dashes. Some project IDs also include domain name separated by a colon. IDs must start with a letter and may not end with a dash.
Quand on se rend sur l'adresse internet ci dessus:
Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "errors": [
      {
        "message": "Login Required.",
        "domain": "global",
        "reason": "required",
        "location": "Authorization",
        "locationType": "header"
      }
    ],
    "status": "UNAUTHENTICATED"
  }
}

En résumé, je n'arrive pas à lire les tables du projet2 sous jupyterlab étant, par défaut dans projet1
Pouvez vous m'aider svp?
Merci