Manipula datos con BigQuery DataFrames
BigQuery DataFrames te permite manipular datos con patrones de sintaxis de pandas conocidos sin transferir conjuntos de datos fuera de tu almacén de datos. Debido a que estas operaciones se ejecutan del lado del servidor, puedes inspeccionar, manipular y aplicar cálculos complejos directamente en los datos almacenados en BigQuery.
Para obtener más información sobre las funciones compatibles, consulta la biblioteca de
bigframes.bigquery.
Roles obligatorios
Para obtener los permisos que necesitas para completar las tareas de este documento, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
- Usuario de trabajo de BigQuery (
roles/bigquery.jobUser) - Usuario de sesión de lectura de BigQuery (
roles/bigquery.readSessionUser) -
Usa BigQuery DataFrames en un notebook de BigQuery:
- Usuario de BigQuery (
roles/bigquery.user) - Usuario del entorno de ejecución del notebook (
roles/aiplatform.notebookRuntimeUser) - Creador de código (
roles/dataform.codeCreator)
- Usuario de BigQuery (
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Cuando realizas la autenticación de usuario final en un entorno interactivo como un notebook, el REPL de Python o la línea de comandos, BigQuery DataFrames solicita la autenticación si es necesario. De lo contrario, consulta cómo configurar las credenciales predeterminadas de la aplicación para varios entornos.
API de pandas
Una característica notable de BigQuery DataFrames es que la
API de bigframes.pandas
está diseñada para ser similar a las APIs de la biblioteca de pandas. Este diseño te permite
emplear
patrones de sintaxis conocidos para las tareas de manipulación de datos. Las operaciones definidas a través de
la API de BigQuery DataFrames se ejecutan del lado del servidor y operan directamente
en los datos almacenados en BigQuery, lo que elimina la necesidad de
transferir conjuntos de datos fuera de BigQuery.
Para verificar qué APIs de pandas son compatibles con BigQuery DataFrames, consulta APIs de pandas compatibles.
Inspecciona y manipula datos
Puedes usar la API de bigframes.pandas para realizar operaciones de inspección y
cálculo de datos. En la siguiente muestra de código, se usa la biblioteca bigframes.pandas
para inspeccionar la columna body_mass_g, calcular la media body_mass y
calcular la media body_mass por species:
Biblioteca de BigQuery
La biblioteca de BigQuery proporciona funciones de SQL de BigQuery que podrían no tener un equivalente en Pandas. En las siguientes secciones, se presentan algunos ejemplos.
Procesa valores de arrays
Puedes usar la función bigframes.bigquery.array_agg() en la biblioteca bigframes.bigquery para agregar valores después de una operación groupby:
También puedes usar las funciones de array array_length() y array_to_string().
Crea un objeto struct Series
Puedes usar la función bigframes.bigquery.struct() en la biblioteca
bigframes.bigquery para crear un objeto Series de struct nuevo con
subcampos para cada columna en un DataFrame:
Convierte marcas de tiempo en tiempo Unix
Puedes usar la función bigframes.bigquery.unix_micros() en la biblioteca bigframes.bigquery para convertir marcas de tiempo en microsegundos de Unix:
También puedes usar las funciones de tiempo unix_seconds() y unix_millis().
Usa la función escalar de SQL
Puedes usar la función bigframes.bigquery.sql_scalar() en la biblioteca
bigframes.bigquery para acceder a la sintaxis de SQL arbitraria que representa una
expresión de una sola columna:
¿Qué sigue?
- Obtén más información sobre las funciones personalizadas de Python para BigQuery DataFrames.
- Aprende a generar código de BigQuery DataFrames con Gemini.
- Aprende a analizar las descargas de paquetes de PyPI con BigQuery DataFrames.
- Consulta el código fuente, los notebooks de muestra y las muestras de BigQuery DataFrames en GitHub.
- Explora la referencia de la API de BigQuery DataFrames.