Como carregar um dataframe Pandas no Google BigQuery
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:
- Crawler: coleta dos dados
- Pré-processamento: limpeza dos dados
- Classificação: classificação do dado pré processado
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