BigFrames: O fim do MemoryError para quem ama Pandas
Source: Dev.to

🤔 O que é o BigFrames?
BigFrames é uma biblioteca open‑source do Google Cloud que traduz comandos Python/Pandas diretamente em SQL do BigQuery.
Diferença fundamental
| Pandas | BigFrames | |
|---|---|---|
| Onde os dados ficam | Carrega os dados para o seu computador | Leva o seu código até onde os dados estão (na nuvem) |
📊 Benchmark: Quando a RAM não é o limite
| Volume de Dados | Pandas (Mac M3 16 GB RAM) | BigFrames (BigQuery Engine) | Observação |
|---|---|---|---|
| 100 MB | 0.8 s | 2.5 s | Pandas vence (latência menor) |
| 10 GB | 45 s (engasgando) | 5.2 s | BigFrames vence |
| 100 GB | Crash (MemoryError) | 12 s | BigFrames vence |
| 1 PB | 💀 Nem tenta | 45 s | BigFrames único sobrevivente |
Insight: Para dados pequenos, a latência de rede do BigFrames pode torná‑lo mais lento. Mas a partir de ~5‑10 GB, ele se torna imbatível.
🛠️ O Setup de Elite: BigFrames + Marimo
A combinação Marimo (Notebook Reativo) + BigFrames é o “Power Couple” de 2026 para quem migra para o Mac. Imagine um slider no Marimo que, ao ser arrastado, dispara uma agregação em um dataset de 1 bilhão de linhas no BigQuery e atualiza o gráfico no seu Mac em segundos.
Exemplo de código
import bigframes.pandas as bpd
# Configuração inicial
bpd.options.bigquery.project = "seu-projeto-dev"
bpd.options.bigquery.location = "us"
# Lendo uma tabela pública massiva (Wikipedia, GitHub, etc)
df = bpd.read_gbq("bigquery-public-data.samples.wikipedia")
# Filtragem e agregação (sintaxe 100 % Pandas)
# Nota: isso NÃO baixa os dados para o seu Mac ainda!
top_paginas = (
df[df['language'] == 'pt']
.groupby('title')
.sum(numeric_only=True)
.sort_values('views', ascending=False)
.head(10)
)
# O dado só é "puxado" para o local quando você dá um print ou plota
print(top_paginas)
🧠 Por que usar o BigFrames agora?
- Lazy Evaluation: nada é executado até ser estritamente necessário, permitindo otimizações antes de gerar o SQL.
- ML nativo (
bigframes.ml): treine modelos de Linear Regression, K‑Means ou use o Gemini (LLM) diretamente nos dados do BigQuery com uma API estilo Scikit‑Learn. - Custo‑eficiência: no BigQuery você paga pelo volume processado; o BigFrames gera SQL otimizado para evitar scans desnecessários.
🆚 Veredito Final
| Cenário | Ferramenta recomendada |
|---|---|
| Dados que cabem no Excel | Pandas |
| Limpeza de dados local rápida | Pandas |
| Datasets > 10 GB ou cloud‑native | BigFrames |
| Necessidade de versionar no Git | BigFrames + Marimo |