Como carregar um dataframe Pandas no Google BigQuery

Guilherme Gomes
Data Hackers
Published in
5 min readMar 18, 2021

Fala, pessoal. Tudo bem?

Após esse longo hiato sem publicar textos no Medium, resolvi retomar a nossa série de textos mostrando um projeto de Ciência de Dados desde a coleta do dado até a visualização. No texto de hoje eu mostrarei como salvar o seu Dataframe Pandas no Google BigQuery.

Série de textos:

01. Como capturar comentários do Youtube usando Python

02. Guia inicial de pré-processamento de texto utilizando Python

03. Text Analytics (NLP) utilizando Python

04. Como carregar um dataframe Pandas no Google BigQuery

05. 4 dicas de visualização de dados

Introdução

Nos textos anteriores mostrei toda a coleta de dados utilizando o Selenium, posteriormente o pré-processamento de texto e, por fim, a criação do modelo. Hoje quero mostrar como salvar esses dados que passaram pelo nosso modelo de classificação no BigQuery e, posteriormente, montar análises utilizando o Google Datastudio.

Hoje o método main do projeto contém 3 etapas:

Todos os dados intermediários gerados durante esse processo são guardados em arquivos .csv no diretório da máquina. A partir de agora, o dado após a classificação será salvo dentro do GBQ (Google BigQuery).

Função “save_gbq”

A primeira coisa que vamos criar é um arquivo python chamado “database_save.py”. Nele teremos uma função chamada “save_gbq”, também podemos criar outras funções para salvar em postgres ou outros bancos de dados

import pandas_gbqfrom google.oauth2 import service_accountdef save_gbq(df, channel_name, nome_tabela, path_json_key):credentials = service_account.Credentials.from_service_account_file(path_json_key)pandas_gbq.to_gbq(dataframe = df,destination_table = f’{channel_name}.{nome_tabela}’,project_id = ‘youtube-analise-307419’,credentials = credentials,if_exists = ‘append’)

A biblioteca utilizada chama “pandas_gbq”, a documentação pode ser acessada aqui. Como queremos escrever um dataframe no GBQ, foi utilizado a função “pandas_gbq.to_gbq”, nessa função temos os seguintes parâmetros:

  • dataframe: dado que queremos salvar
  • destination_table: dataset.nome_tabela
  • project_id: identificador do projeto no Google
  • credentials: credencial necessária para acessar o projeto (explicação abaixo)
  • if_exists: caso já exista dado nessa tabela qual será a ação, no nosso caso ele agrega o dado antigo com o novo.

Criação da credencial

Além da função “pandas_gbq.to_gbq”, precisamos criar uma credencial para utilizar o GBQ, para isso vamos criar uma conta de serviço:

01. Criar um projeto no google cloud

Essa etapa é a mais simples de toda, basta logar na sua conta Google e acessar o site www.console.cloud.google.com

02. Acessar IAM e administrador

03. Acessar contas de serviço

Ao clicar no “IAM administrador” terá na barra lateral as seguintes opções e clique em contas de serviço.

04. Criar conta de serviço

05. Preencher os campos da nova conta

06. Tipo de acesso ao big query

07. Finalizar a conclusão

08. Gerar chave .json

09. Adicionar nova chave a uma conta

10. Exportar a chave como JSON

11. Copiar email chave .json

13. Adicionar o email do chave no projeto

13. adicionar o tipo de permissão da chave

Após todas essas etapas, podemos dar continuidade no projeto e chamar essa nova função dentro do método main.

def main():url_channel = ‘https://www.youtube.com/c/LionBBQ/videos'channel_name = ‘lion_bbq’json_key = ‘caminho_para_sua_chave’df_raw = processor_youtube_crawler(url_channel, channel_name)df_preprocessed = preprocessor(df_raw, channel_name, ‘comment’)df_classified = classification_model(df_preprocessed,channel_name,‘comment_lematized’)save_gbq(df_classified, folder, ‘classified_data’, json_key)

Dessa forma, quando rodamos esse código o nosso dataset classificado será salvo dentro do GBQ.

Conclusão

O Google BigQuery é uma ferramenta muito poderosa e que, se utilizado até 1T de dados mensal, não possui custo. Além de salvar dataframe pandas no GBQ é possível acessar dados do Google Firebase e Google Analytics.

Existem diversas funcionalidades que não foram exploradas aqui, como por exemplo GBQ ML (SIM é possível fazer machine learning no GBQ), GBQ BI e também criar alguns gráficos para explorar os dados utilizando o GBQ. No próximo texto você poderá acompanhar como criar visualizações de dados utilizando o Google Datastudio e Google BigQuery.

Toda sugestão e crítica construtiva é bem-vinda. Espero que você tenha gostado desse texto e qualquer dúvida fico à disposição, abraços!

Série de textos:

01. Como capturar comentários do Youtube usando Python

02. Guia inicial de pré-processamento de texto utilizando Python

03. Text Analytics (NLP) utilizando Python

04. Como carregar um dataframe Pandas no Google BigQuery

05. 4 dicas de visualização de dados

--

--

Guilherme Gomes
Guilherme Gomes

Written by Guilherme Gomes

Profissional da área de dados, apaixonado por produtos digitais e hambúrguer.