| name | bigquery-bigframes |
| metadata | {"version":"v1"} |
| description | Generates Python code using BigQuery DataFrames (BigFrames), the pandas/scikit-learn-style API over BigQuery. Use when writing BigFrames code or doing pandas-style dataframe/ML work against BigQuery (e.g. in a notebook). Don't use for SQL-first workflows or the google-cloud-bigquery client library — use bigquery-basics. |
BigFrames (BigQuery DataFrame) basics
BigFrames is a Python library that lets you take advantage of BigQuery
data processing by using familiar Python APIs.
Dataframe API best practices
Machine Learning
- Use
bigframes.bigquery.ml package: Do not use Scikit-learn or other ML
libraries with BigQuery DataFrames. Standard Scikit-learn models require
bringing data into local client memory, whereas bigframes.bigquery.ml
delegates training directly to BigQuery's scalable ML engine. Import functions
from bigframes.bigquery.ml.
Reference Directory
BigFrames ML (Legacy)
The BigFrames ML package (bigframes.ml) is a legacy package that mimics the
scikit-learn API but is no longer recommended for new projects. Only use this
package if the user explicitly requests BigFrames ML.
- Legacy Imports: When legacy BigFrames ML is requested, import tools and
classes from
bigframes.ml instead of bigframes.bigquery.ml.
- DataFrame Return on Prediction: Unlike Scikit-learn, BigFrames'
predict() method always returns a DataFrame containing both predictions
and features, rather than a single series of predictions.
- No
random_state: Do not pass a random_state argument when
instantiating BigFrames ML models, as this parameter is not supported in the
BigFrames ML package.
- Automatic Scaling: Do not use
OneHotEncoder or StandardScaler unless
explicitly requested, as scaling is handled automatically.
- Hyperparameter Tuning: Write custom loops for hyperparameter tuning, as
BigFrames lacks
GridSearchCV or RandomizedSearchCV.
- ARIMA Plus (Forecasting):
- Import from
bigframes.ml.forecasting.
- Sort data chronologically and split around a timepoint before training.
- Ensure the prediction horizon is less than or equal to the training
horizon.
- PCA: BigFrames' PCA class lacks a
transform() method. Use predict()
instead.
- Model Persistence: To persist a model, use
model.to_gbq(). To load a
persisted model, use bpd.read_gbq_model().