使用 BigQuery DataFrames 处理数据
本文档介绍了 BigQuery DataFrames 提供的数据操控功能。您可以在 bigframes.bigquery 库中找到所描述的函数。
所需的角色
如需获得完成本文档中的任务所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
BigQuery Job User (
roles/bigquery.jobUser) -
BigQuery Read Session User (
roles/bigquery.readSessionUser) -
在 BigQuery 笔记本中使用 BigQuery DataFrames:
-
BigQuery User (
roles/bigquery.user) -
Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) -
Code Creator (
roles/dataform.codeCreator)
-
BigQuery User (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
在笔记本、Python REPL 或命令行等交互式环境中执行最终用户身份验证时,BigQuery DataFrames 会根据需要提示进行身份验证。否则,请参阅如何为各种环境设置应用默认凭证。
pandas API
BigQuery DataFrames 的一个显著特点是,bigframes.pandas API 的设计与 pandas 库中的 API 类似。此设计可让您使用熟悉的数据操控语法模式。通过 BigQuery DataFrames API 定义的操作在服务器端执行,直接对存储在 BigQuery 中的数据进行操作,无需将数据集从 BigQuery 中转移出来。
如需查看 BigQuery DataFrames 支持哪些 pandas API,请参阅支持的 pandas API。
检查和操纵数据
您可以使用 bigframes.pandas API 执行数据检查和计算操作。以下代码示例使用 bigframes.pandas 库检查 body_mass_g 列,计算平均值 body_mass,以及按 species 计算平均值 body_mass:
BigQuery 库
BigQuery 库提供了一些可能没有 pandas 等效函数的 BigQuery SQL 函数。以下部分提供了一些示例。
处理数组值
您可以使用 bigframes.bigquery 库中的 bigframes.bigquery.array_agg() 函数在 groupby 操作后聚合值:
您还可以使用 array_length() 和 array_to_string() 数组函数。
创建结构体 Series 对象
您可以使用 bigframes.bigquery 库中的 bigframes.bigquery.struct() 函数创建新的结构体 Series 对象,其中包含 DataFrame 中每个列的子字段:
将时间戳转换为 Unix 纪元
您可以使用 bigframes.bigquery 库中的 bigframes.bigquery.unix_micros() 函数将时间戳转换为 Unix 微秒:
您还可以使用 unix_seconds() 和 unix_millis() 时间函数。
使用 SQL 标量函数
您可以使用 bigframes.bigquery 库中的 bigframes.bigquery.sql_scalar() 函数来访问表示单列表达式的任意 SQL 语法:
后续步骤
- 了解 BigQuery DataFrames 的自定义 Python 函数。
- 了解如何使用 Gemini 生成 BigQuery DataFrames 代码。
- 了解如何使用 BigQuery DataFrames 分析通过 PyPI 进行的软件包下载情况。
- 在 GitHub 上查看 BigQuery DataFrames 的源代码、示例笔记本和示例。
- 探索 BigQuery DataFrames API 参考文档。