BigQuery DataFrames verwenden

Wenn Sie während der Vorschau Unterstützung benötigen, senden Sie eine E-Mail an bigframes-feedback@google.com.

In diesem Dokument wird beschrieben, wie Sie BigQuery DataFrames zum Analysieren und Bearbeiten von Daten in einem BigQuery-Notebook verwenden können.

BigQuery DataFrames ist eine Python-Clientbibliothek, mit der Sie Daten analysieren und Aufgaben in BigQuery-Notebooks für maschinelles Lernen ausführen können.

BigQuery DataFrames besteht aus folgenden Teilen:

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  5. Die BigQuery API muss aktiviert sein.

    API aktivieren

    Wenn Sie ein neues Projekt erstellt haben, wird die BigQuery API automatisch aktiviert.

Erforderliche Berechtigungen

Wenn Sie BigQuery DataFrames in einem BigQuery-Notebook verwenden möchten, benötigen Sie die folgenden IAM-Rollen (Identity and Access Management):

Notebook erstellen

Folgen Sie der Anleitung unter Notebook mit dem BigQuery-Editor erstellen, um ein neues Notebook zu erstellen.

BigQuery DataFrames-Optionen einrichten

Nach der Installation müssen Sie den Standort und das Projekt angeben, in dem Sie BigQuery-DataFrames verwenden möchten.

Sie können den Speicherort und das Projekt in Ihrem Notebook so definieren:

import bigframes.pandas as bpd

PROJECT_ID = "bigframes-dec"  # @param {type:"string"}
REGION = "US"  # @param {type:"string"}

# Set BigQuery DataFrames options
bpd.options.bigquery.project = PROJECT_ID
bpd.options.bigquery.location = REGION

bigframes.pandas verwenden

Die bigframes.pandas API bietet eine pandas-ähnliche API, mit der Sie Daten in BigQuery analysieren und bearbeiten können. Die bigframes.pandas API ist skalierbar, um die Verarbeitung von Terabyte an BigQuery-Daten zu unterstützen. Sie verwendet die BigQuery-Abfrage-Engine für Berechnungen.

Die bigframes.pandas API bietet folgende Funktionen:

Eingabe und Ausgabe
Sie können auf Daten aus verschiedenen Quellen, einschließlich lokaler CSV-Dateien, Cloud Storage-Dateien, pandas DataFrames, BigQuery-Modelle und BigQuery-Funktionen, zugreifen und sie in ein BigQuery DataFrame laden. Sie können BigQuery-Tabellen auch aus BigQuery DataFrames erstellen.
Datenmanipulation
Für Ihre Entwicklung können Sie Python anstelle von SQL verwenden. Sie können alle BigQuery-Datenmanipulationen in Python entwickeln, sodass Sie nicht zwischen Sprachen wechseln und SQL-Anweisungen als Textstrings erfassen müssen. Die bigframes.pandas API bietet über 250 pandas-Funktionen.
Python-Umgebung und Visualisierungen
Die bigframes.pandas API ist ein Gateway zum vollständigen Python-System an Tools. Die API unterstützt erweiterte statistische Vorgänge und Sie können die von BigQuery DataFrames generierten Aggregationen visualisieren. Sie können auch von einem BigQuery DataFrame zu einem pandas DataFrame mit integrierten Stichprobenvorgängen wechseln.
Benutzerdefinierte Python-Funktionen
Sie können benutzerdefinierte Python-Funktionen und -Pakete verwenden. Mit bigframes.pandas können Sie Remote-Funktionen bereitstellen, die skalare Python-Funktionen in BigQuery-Größe ausführen. Sie können diese Funktionen in BigQuery als SQL-Routinen beibehalten und wie SQL-Funktionen verwenden.

Daten aus einer BigQuery-Tabelle oder -Abfrage laden

Sie können einen DataFrame aus einer BigQuery-Tabelle oder -Abfrage so erstellen:

# Create a DataFrame from a BigQuery table:
import bigframes.pandas as bpd

query_or_table = "bigquery-public-data.ml_datasets.penguins"
bq_df = bpd.read_gbq(query_or_table)

Daten aus einer CSV-Datei laden

Sie können einen DataFrame aus einer lokalen oder Cloud Storage-CSV-Datei so erstellen:

import bigframes.pandas as bpd

filepath_or_buffer = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"
df_from_gcs = bpd.read_csv(filepath_or_buffer)
# Display the first few rows of the DataFrame:
df_from_gcs.head()

Daten prüfen und bearbeiten

Sie können bigframes.pandas für Datenprüfungs- und Berechnungsvorgänge verwenden.

Das folgende Codebeispiel zeigt, wie Sie mit bigframes.pandas die Spalte body_mass_g prüfen, den Mittelwert body_mass berechnen und den Mittelwert body_mass nach species berechnen:

import bigframes.pandas as bpd

# Load data from BigQuery
query_or_table = "bigquery-public-data.ml_datasets.penguins"
bq_df = bpd.read_gbq(query_or_table)

# Inspect one of the columns (or series) of the DataFrame:
bq_df["body_mass_g"]

# Compute the mean of this series:
average_body_mass = bq_df["body_mass_g"].mean()
print(f"average_body_mass: {average_body_mass}")

# Find the heaviest species using the groupby operation to calculate the
# mean body_mass_g:
(
    bq_df["body_mass_g"]
    .groupby(by=bq_df["species"])
    .mean()
    .sort_values(ascending=False)
    .head(10)
)

bigframes.ml verwenden

Mit der scikit-learn-ähnlichen bigframes.ml API können Sie mehrere Typen von Modellen für maschinelles Lernen erstellen.

Regression

Das folgende Codebeispiel zeigt bigframes.ml, um Folgendes zu tun:

from bigframes.ml.linear_model import LinearRegression
import bigframes.pandas as bpd

# Load data from BigQuery
query_or_table = "bigquery-public-data.ml_datasets.penguins"
bq_df = bpd.read_gbq(query_or_table)

# Filter down to the data to the Adelie Penguin species
adelie_data = bq_df[bq_df.species == "Adelie Penguin (Pygoscelis adeliae)"]

# Drop the species column
adelie_data = adelie_data.drop(columns=["species"])

# Drop rows with nulls to get training data
training_data = adelie_data.dropna()

# Specify your feature (or input) columns and the label (or output) column:
feature_columns = training_data[
    ["island", "culmen_length_mm", "culmen_depth_mm", "flipper_length_mm", "sex"]
]
label_columns = training_data[["body_mass_g"]]

test_data = adelie_data[adelie_data.body_mass_g.isnull()]

# Create the linear model
model = LinearRegression()
model.fit(feature_columns, label_columns)

# Score the model
score = model.score(feature_columns, label_columns)

# Predict using the model
result = model.predict(test_data)

Clustering

Mit dem Modul bigframes.ml.cluster können Sie Estimators für Clustering-Modelle erstellen.

Das folgende Codebeispiel zeigt die Verwendung der Klasse bigframes.ml.cluster KMeans zum Erstellen eines K-Means-Clustering-Modells für die Datensegmentierung:

from bigframes.ml.cluster import KMeans
import bigframes.pandas as bpd

# Load data from BigQuery
query_or_table = "bigquery-public-data.ml_datasets.penguins"
bq_df = bpd.read_gbq(query_or_table)

# Create the KMeans model
cluster_model = KMeans(n_clusters=10)
cluster_model.fit(bq_df["culmen_length_mm"], bq_df["sex"])

# Predict using the model
result = cluster_model.predict(bq_df)
# Score the model
score = cluster_model.score(bq_df)

LLM-Remote-Modelle

Mit dem Modul bigframes.ml.llm können Sie Estimators für Remote-Großsprachmodelle (LLMs) erstellen.

Im folgenden Codebeispiel wird die Klasse bigframes.ml.llm PaLM2TextGenerator verwendet, um ein PaLM2-Textgeneratormodell für die Textgenerierung zu erstellen:

from bigframes.ml.llm import PaLM2TextGenerator
import bigframes.pandas as bpd

# Create the LLM model
session = bpd.get_global_session()
connection = f"{PROJECT_ID}.{REGION}.{CONN_NAME}"
model = PaLM2TextGenerator(session=session, connection_name=connection)

df_api = bpd.read_csv("gs://cloud-samples-data/vertex-ai/bigframe/df.csv")

# Prepare the prompts and send them to the LLM model for prediction
df_prompt_prefix = "Generate Pandas sample code for DataFrame."
df_prompt = df_prompt_prefix + df_api["API"]

# Predict using the model
df_pred = model.predict(df_prompt.to_frame(), max_output_tokens=1024)

Preise

BigQuery DataFrames ist eine Open-Source-Python-Bibliothek. Der Quellcode kann über GitHub aufgerufen und heruntergeladen werden. Sie können die Bibliothek über PyPI installieren. Die Bibliothek ist möglicherweise auch über andere Paketmanager verfügbar, die von der Community verwaltet werden.

BigQuery DataFrames verwendet BigQuery, Cloud Functions, Vertex AI und andere Google Cloud-Dienste, für die eigene Kosten anfallen. Während der normalen Nutzung speichert die Bibliothek Daten in BigQuery-Zwischentabellen, die standardmäßig eine Dauer von sieben Tagen haben.

Nächste Schritte