使用 BigQuery DataFrames 操控資料
BigQuery DataFrames 可讓您使用熟悉的 pandas 語法模式操控資料,不必將資料集移出資料倉儲。由於這些作業是在伺服器端執行,因此您可以直接檢查、操控及套用複雜的計算,處理儲存在 BigQuery 資料儲存庫中的資料。
如要進一步瞭解支援的函式,請參閱 bigframes.bigquery 程式庫。
必要的角色
如要取得完成本文件所述工作所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- BigQuery 工作使用者 (
roles/bigquery.jobUser) - BigQuery 讀取工作階段使用者 (
roles/bigquery.readSessionUser) -
在 BigQuery 筆記本中使用 BigQuery DataFrames:
- BigQuery 使用者 (
roles/bigquery.user) - Notebook 執行階段使用者 (
roles/aiplatform.notebookRuntimeUser) - 程式碼建立者 (
roles/dataform.codeCreator)
- BigQuery 使用者 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
在筆記本、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 程式庫提供的 BigQuery SQL 函式,可能沒有對應的 pandas 函式。以下各節提供一些範例。
處理陣列值
您可以使用 bigframes.bigquery 程式庫中的 bigframes.bigquery.array_agg() 函式,在 groupby 作業後匯總值:
您也可以使用 array_length() 和 array_to_string() 陣列函式。
建立 struct Series 物件
您可以使用 bigframes.bigquery 程式庫中的 bigframes.bigquery.struct() 函式,建立新的 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 參考資料。