В локальной версии я могу установить путь к учетным данным сервисной учетной записи файла .json и передать этот файл. в качестве учетных данных для моего запроса. Однако я не могу найти вариант использования этого файла .json в Dataiku.
Я попробовал два варианта:
Option1 :
Код: Выделить всё
import dataiku
from dataiku import pandasutils as pdu
import pandas as pd
import google.cloud.bigquery as bigquery
from google.cloud import bigquery
import os
import pandas as pd
cred_file = "adc.json"
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]=cred_file
os.environ["GOOGLE_CLOUD_PROJECT"] = "PROJECT_ID"
def query_bq(QUERY):
client = bigquery.Client(project="PROJECT_ID")
query_job = client.query(QUERY) # API request
rows = query_job.result() # Waits for query to finish
df = rows.to_dataframe()
return df
# Initialize BigQuery client
client = bigquery.Client()
# Step 1: Fetch SQL snippets from BigQuery
fetch_sql_query = """
SELECT DISTINCT Col1, Col2, col_3, Col_4 FROM `BQ_Table_name`
"""
query_job = client.query(fetch_sql_query)
snippets = query_job.result()
defaultcredentialSerror: файл adc.json не был найден.
Вариант 2:
Код: Выделить всё
#created a managed folder in Dataiku and uploaded the adc.json file into it.
folder_path = dataiku.Folder("folder_name").get_path()
credentials = service_account.Credentials.from_service_account_file(
"folder_path/adc.json"
)
client = bigquery.Client(credentials=credentials, project='PROJECT_ID')
MalformedError: информация об учетной записи службы была не в ожидаемом формате, отсутствуют поля token_uri, client_email.< /p>
К вашему сведению: я могу запустить опцию 1 в своем локальном компьютере без каких-либо ошибок. Это проблема при попытке выполнить это в блокноте Dataiku Python.>
Подробнее здесь: https://stackoverflow.com/questions/792 ... on-recipie