管理 BigQuery DataFrames 会话和 I/O
本文档介绍了在使用 BigQuery DataFrames 时如何管理会话以及执行输入和输出 (I/O) 操作。您将学习如何创建和使用会话、处理内存中的数据,以及从文件和 BigQuery 表中读取数据和向其中写入数据。
BigQuery 会话
BigQuery DataFrames 在内部使用本地会话对象来管理元数据。每个 DataFrame
和 Series
对象都连接到一个会话,每个会话都连接到一个位置,并且会话中的每个查询都在您创建会话的位置运行。使用以下代码示例手动创建会话并使用该会话加载数据:
您无法合并来自多个会话实例的数据,即使您使用相同的设置初始化这些会话实例也是如此。以下代码示例显示,尝试合并来自不同会话实例的数据会导致错误:
全局会话
BigQuery DataFrames 提供了一个默认的全局会话,您可以使用 bigframes.pandas.get_global_session()
方法访问该会话。在 Colab 中,您必须先为 bigframes.pandas.options.bigquery.project
属性提供项目 ID,然后才能使用该属性。您还可以使用 bigframes.pandas.options.bigquery.location
属性设置位置,该属性的默认值为 US
多区域。
以下代码示例展示了如何为全局会话设置选项:
如需重置全局会话的位置或项目,请运行 bigframes.pandas.close_session()
方法来关闭当前会话。
许多 BigQuery DataFrames 内置函数默认使用全局会话。以下代码示例展示了内置函数如何使用全局会话:
内存中数据
您可以使用内置的 Python 或 NumPy 数据结构创建 Dataframes
和 Series
对象,这与使用 pandas 创建对象的方式类似。使用以下代码示例创建对象:
如需使用 read_pandas()
方法或构造函数将 pandas
对象转换为 DataFrames
对象,请使用以下代码示例:
如需使用 to_pandas()
方法将 BigQuery DataFrames 数据加载到内存中,请使用以下代码示例:
使用 dry_run
参数估算费用
加载大量数据可能需要花费大量时间和资源。如需了解正在处理的数据量,请在 to_pandas()
调用中使用 dry_run=True
参数。使用以下代码示例执行试运行:
读取和写入文件
您可以将兼容文件中的数据读取到 BigQuery DataFrames 中。这些文件可以位于本地计算机上,也可以位于 Cloud Storage 中。使用以下代码示例从 CSV 文件读取数据:
如需使用 to_csv
方法将 BigQuery DataFrame 保存到本地文件或 Cloud Storage 文件,请使用以下代码示例:
读取和写入 BigQuery 表
如需使用 BigQuery 表引用和 bigframes.pandas.read_gbq
函数创建 BigQuery DataFrames,请使用以下代码示例:
如需使用带有 read_gbq()
函数的 SQL 字符串将数据读取到 BigQuery DataFrames 中,请使用以下代码示例:
如需将 DataFrame
对象保存到 BigQuery 表中,请使用 DataFrame
对象的 to_gbq()
方法。以下代码示例展示了如何执行此操作:
后续步骤
- 了解如何使用 BigQuery DataFrames。
- 了解如何在 BigQuery DataFrames 中使用数据类型。
- 了解如何使用 BigQuery DataFrames 直观呈现图表。
- 探索 BigQuery DataFrames API 参考文档。