Utilizza BigQuery DataFrames

Per ricevere assistenza durante l'anteprima, invia un'email all'indirizzo bigframes-feedback@google.com.

Questo documento descrive come utilizzare DataFrames BigQuery per analizzare e manipolare i dati in un blocco note BigQuery.

BigQuery DataFrames è una libreria client di Python che puoi utilizzare per analizzare i dati ed eseguire attività di machine learning nei blocchi note di BigQuery.

BigQuery DataFrames è costituito dalle seguenti parti:

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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. Make sure that billing is enabled for your Google Cloud project.

  5. Assicurati che l'API BigQuery sia abilitata.

    Abilita l'API

    Se hai creato un nuovo progetto, l'API BigQuery viene abilitata automaticamente.

Autorizzazioni obbligatorie

Per utilizzare BigQuery DataFrames in un blocco note BigQuery, devi disporre dei seguenti ruoli IAM (Identity and Access Management):

Crea un blocco note

Per creare un nuovo blocco note, segui le istruzioni riportate in Creare un blocco note dall'editor BigQuery.

Configura le opzioni di BigQuery DataFrames

Dopo l'installazione, devi specificare la posizione e il progetto in cui vuoi utilizzare BigQuery DataFrames.

Puoi definire la posizione e il progetto nel blocco note nel seguente modo:

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

Utilizza bigframes.pandas

L'API bigframes.pandas fornisce un'API simile a pandas che puoi utilizzare per analizzare e manipolare i dati in BigQuery. L'API bigframes.pandas è scalabile per supportare l'elaborazione di terabyte di dati BigQuery e utilizza il motore di query BigQuery per eseguire i calcoli.

L'API bigframes.pandas offre le seguenti funzionalità:

Input e output
Puoi accedere ai dati da varie origini, tra cui file CSV locali, file Cloud Storage, pandas DataFrame, modelli BigQuery e funzioni BigQuery, quindi caricarli in un DataFrame BigQuery. Puoi anche creare tabelle BigQuery da BigQuery DataFrames.
Manipolazione dei dati
Per lo sviluppo puoi utilizzare Python anziché SQL. Puoi sviluppare tutte le manipolazioni dei dati BigQuery in Python, eliminando la necessità di passare da un linguaggio all'altro e provare ad acquisire le istruzioni SQL come stringhe di testo. L'API bigframes.pandas offre oltre 250 funzioni pandas.
Ecosistema e visualizzazioni Python
L'API bigframes.pandas è un gateway all'intero ecosistema di strumenti Python. L'API supporta operazioni statistiche avanzate e puoi visualizzare le aggregazioni generate da BigQuery DataFrames. Puoi anche passare da un DataFrame BigQuery a un DataFrame pandas con operazioni di campionamento integrate.
Funzioni Python personalizzate
Puoi usare funzioni e pacchetti Python personalizzati. Con bigframes.pandas puoi eseguire il deployment di funzioni remote che eseguono funzioni Python scalari su scala BigQuery. Puoi ripristinare queste funzioni in BigQuery come routine SQL e utilizzarle come funzioni SQL.

Carica i dati da una tabella o query BigQuery

Puoi creare un DataFrame da una tabella o query BigQuery nel seguente modo:

# 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)

Carica i dati da un file CSV

Puoi creare un DataFrame da un file CSV locale o di Cloud Storage nel seguente modo:

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()

Ispeziona e manipola i dati

Puoi utilizzare bigframes.pandas per eseguire operazioni di ispezione e calcolo dei dati.

Il seguente esempio di codice mostra l'uso di bigframes.pandas per ispezionare la colonna body_mass_g, calcolare la media body_mass e calcolare la media body_mass per species:

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)
)

Utilizza bigframes.ml

L'API bigframes.ml scikit-learn-like consente di creare diversi tipi di modelli di machine learning.

Regressione

Il seguente esempio di codice mostra l'uso di bigframes.ml per:

  • Carica i dati da BigQuery
  • Pulire e preparare i dati di addestramento
  • Creare e applicare un modello di regressione bigframes.ml.LinearRegression
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

Puoi utilizzare il modulo bigframes.ml.cluster per creare stimatori per i modelli di clustering.

Il seguente esempio di codice mostra l'uso della classe bigframes.ml.cluster KMeans per creare un modello di clustering K-means per la segmentazione dei dati:

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)

Modelli remoti LLM

Puoi utilizzare il modulo bigframes.ml.llm per creare stimatori per i modelli linguistici di grandi dimensioni (LLM) remoti.

Il seguente esempio di codice mostra l'uso della classe bigframes.ml.llm PaLM2TextGenerator per creare un modello del generatore di testo PaLM2 per la generazione del testo:

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)

Prezzi

BigQuery DataFrames è una libreria Python open source. Il codice sorgente può essere visualizzato e scaricato utilizzando GitHub. Puoi installare la libreria da PyPI. La libreria potrebbe essere disponibile anche su altri gestori di pacchetti gestiti dalla community.

BigQuery DataFrames utilizza BigQuery,Cloud Functions, Vertex AI e altri servizi Google Cloud, che prevedono i propri costi. Durante il normale utilizzo, la libreria archivia i dati in tabelle BigQuery intermedie, che per impostazione predefinita hanno una durata di sette giorni.

Passaggi successivi