Tenho um projeto em que gostaria de fazer um carregamento via query de um BigQuery. Isso é possível, já consegui fazer direto do BigQuery com service acount... mas aprimoraria mais com a Query. Detalhe rs essa query possui JSON_EXTRACT.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Tenho um projeto em que gostaria de fazer um carregamento via query de um BigQuery. Isso é possível, já consegui fazer direto do BigQuery com service acount... mas aprimoraria mais com a Query. Detalhe rs essa query possui JSON_EXTRACT.
Olá!!! Algumas horas depois volto com a solução rs
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q https://dlcdn.apache.org/spark/spark-3.4.0/spark-3.4.0-bin-hadoop3.tgz
!tar xf spark-3.4.0-bin-hadoop3.tgz
!pip install -q findspark
!wget -q https://storage.googleapis.com/hadoop-lib/gcs/gcs-connector-hadoop2-latest.jar
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.4.0-bin-hadoop3"
os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars gcs-connector-hadoop2-latest.jar pyspark-shell'
import findspark
findspark.init()
!wget -q https://bin.equinox.io/c/4VmDzA7iaHb/nrok-stable-linux-amd64.zip
!unzip ngrok-stable-linux-amd64.zip
get_ipython().system_raw('./ngrok.http 4050 &')
!curl -s http://localhost:4040/api/tunnels
%env NO_GCE_CHECK=true
from google.cloud import bigquery
service_account_path = 'CAMINHO DA SUA SERVICE ACCOUNT EM JSON'
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = service_account_path
client = bigquery.Client()
project_id = 'COLOQUE SEU PROJETO'
dataset_id = 'COLOQUE SEU DATASET'
table_id = 'COLOQUE SUA TABELA'
table_ref = f'{project_id}.{dataset_id}.{table_id}'
query = f'''
SELECT
*
FROM `{table_ref}`
'''
df = client.query(query).to_dataframe()
df.head()
Olá Adriel, tudo bem com você?
Fico feliz em saber que conseguiu solucionar o desafio apresentado e que compartilhou a resolução com a comunidade do fórum Alura. É muito importante o engajamento e auxílio da comunidade no fórum. Obrigado por sua contribuição, com certeza ajudará outras pessoas.
Abraços e bons estudos!