Utilizza BigQuery DataFrames
BigQuery DataFrames fornisce un DataFrame Python e un'API di machine learning (ML) basata sul motore BigQuery. BigQuery DataFrames è un pacchetto open source.
Puoi eseguire pip install --upgrade bigframes
per installare la versione più recente.
BigQuery DataFrames fornisce due librerie:
bigframes.pandas
, che fornisce un'API compatibile con pandas per l'analisi.bigframes.ml
, che fornisce un'API simile a scikit-learn per il machine learning (ML).
Autorizzazioni obbligatorie
- Per utilizzare BigQuery DataFrames, devi disporre dei ruoli Utente job BigQuery e Utente sessione di lettura BigQuery.
- Quando esegui l'autenticazione dell'utente finale in un ambiente interattivo come un notebook, un REPL Python o la riga di comando, BigQuery DataFrames richiede l'autenticazione, se necessario. In caso contrario, consulta la sezione Come impostare le credenziali predefinite dell'applicazione per vari ambienti.
- Per l'utilizzo di funzioni remote e modelli remoti di ML si applicano requisiti aggiuntivi di Identity and Access Management (IAM).
-
Per utilizzare BigQuery DataFrames in un notebook BigQuery, sono necessari i seguenti ruoli IAM:
Opzioni
Dopo l'installazione, devi specificare la posizione e il progetto in cui vuoi utilizzare BigQuery DataFrames. Puoi definire la posizione e il progetto nel tuo notebook nel seguente modo:Se bf.options.bigquery.project
non è impostato, viene utilizzata la variabile di ambiente $GOOGLE_CLOUD_PROJECT
, impostata nel runtime del notebook che serve i notebook BigQuery Studio e Vertex AI.
Posizione di elaborazione dei dati
BigQuery DataFrames è progettato per l'utilizzo su larga scala, il che viene ottenuto mantenendo i dati
e l'elaborazione nel servizio BigQuery. Tuttavia, puoi importare i dati nella memoria del computer client chiamando .to_pandas()
su un oggetto DataFrame o Series. Se scegli di farlo, verrà applicata la limitazione di memoria del computer client.
Località sessione
BigQuery DataFrames utilizza un oggetto sessione locale per gestire internamente i metadati. Questa
sessione è legata a una posizione.
BigQuery DataFrames utilizza la regione multipla US
come località predefinita, ma puoi utilizzare session_options.location
per impostare una località diversa. Ogni query
in una sessione viene eseguita nella posizione in cui è stata creata la sessione.
I DataFrame BigQuery completano automaticamente bf.options.bigquery.location
con la posizione della tabella se l'utente inizia con read_gbq/read_gbq_table/read_gbq_query()
e specifica una tabella, direttamente o in un'istruzione SQL.
Se vuoi reimpostare la posizione degli oggetti DataFrame o Series creati,
puoi chiudere la sessione eseguendo bigframes.pandas.close_session()
.
Dopodiché, puoi riutilizzare bigframes.pandas.options.bigquery.location
per specificare un'altra località.
read_gbq()
richiede di specificare una località se il set di dati su cui stai eseguendo la query non si trova nella regione multipla US
. Se provi a leggere una tabella da un'altra posizione, viene generata un'eccezione NotFound
.
Tipi di dati
BigQuery DataFrames supporta i seguenti tipi di dati numpy e pandas:
BigQuery | DataFrame di BigQuery e pandas |
---|---|
ARRAY |
pandas.ArrowDtype(pa.list_()) |
BOOL |
pandas.BooleanDtype() |
DATE |
pandas.ArrowDtype(pa.date32()) |
DATETIME |
pandas.ArrowDtype(pa.timestamp("us")) |
FLOAT64 |
pandas.Float64Dtype() |
GEOGRAPHY |
Supportato da |
INT64 |
pandas.Int64Dtype() |
STRING |
pandas.StringDtype(storage="pyarrow") |
STRUCT |
pandas.ArrowDtype(pa.struct()) |
TIME |
pandas.ArrowDtype(pa.time64("us")) |
TIMESTAMP |
pandas.ArrowDtype(pa.timestamp("us", tz="UTC")) |
BigQuery DataFrames non supporta i seguenti tipi di dati BigQuery:
NUMERIC
BIGNUMERIC
INTERVAL
RANGE
JSON
Tutti gli altri tipi di dati BigQuery vengono visualizzati come tipo di oggetto.
Modalità di ordinamento parziale
BigQuery DataFrames fornisce una funzionalità di modalità di ordinamento. Imposta ordering_mode
su partial
per generare query più efficienti.
La modalità di ordinamento partial
è in contrasto con la modalità strict
predefinita, che crea un ordinamento totale di tutte le righe. Un ordinamento totale rende i DataFrame di BigQuery più compatibili con Pandas fornendo l'accesso alle righe in base all'ordine con la proprietà DataFrame.iloc
. Tuttavia, l'ordinamento totale e l'indice sequenziale predefinito su questo ordinamento fanno sì che né i filtri delle colonne né i filtri delle righe riducano il numero di byte sottoposti a scansione, a meno che questi filtri non vengano applicati come parametri alle funzioni read_gbq
e read_gbq_table
. Per fornire un ordinamento totale di tutte le righe del DataFrame, BigQuery DataFrames crea un hash di tutte le righe. Ciò può comportare una scansione completa dei dati che ignora i filtri di riga e colonna.
L'impostazione della proprietà ordering_mode
su partial
impedisce ai DataFrame BigQuery di generare un ordinamento totale su tutte le righe. La modalità di ordinamento parziale disattiva anche le funzionalità che richiedono un ordinamento totale in tutte le righe, ad esempio la proprietà DataFrame.iloc
. La modalità di ordinamento parziale imposta DefaultIndexKind
su un indice nullo anziché su un indice sequenziale rispetto all'ordinamento.
Quando filtri un DataFrame con ordering_mode
impostato su
partial
, BigQuery DataFrames non deve più calcolare le righe mancanti nell'indice sequenziale, quindi genera query più rapide ed efficienti. L'API BigQuery DataFrames è ancora simile a Pandas, così come l'esperienza predefinita con la modalità di ordinamento rigoroso. Tuttavia, la modalità di ordinamento parziale sarà diversa dal comportamento comune di pandas. Ad esempio, la modalità di ordinamento parziale non esegue unioni implicite per indice.
Con le modalità di ordinamento parziale e rigoroso, paghi le risorse BigQuery che utilizzi. Tuttavia, l'utilizzo della modalità di ordinamento parziale può ridurre i costi quando si utilizzano tabelle di grandi dimensioni con clustering e/o partitioning, perché i filtri riga sulle colonne di cluster e partizione riducono il numero di byte elaborati.
Utilizzo
Per utilizzare l'ordinamento parziale, imposta ordering_mode
su partial
prima di eseguire qualsiasi altra operazione con BigQuery DataFrames, come mostrato nel seguente esempio di codice:
import bigframes.pandas as bdp bpd.options.bigquery.ordering_mode = "partial"
Poiché non esiste un indice sequenziale con la modalità di ordinamento parziale, i DataFrame BigQuery non correlati non vengono uniti implicitamente. Devi invece chiamare esplicitamente il metodo DataFrame.merge
per unire due DataFrame BigQuery che derivano da espressioni di tabelle diverse.
Le funzionalità Series.unique()
e Series.drop_duplicates()
non sono compatibili con la modalità di ordinamento parziale. Utilizza invece il metodo groupby
per trovare i valori univoci in questo modo:
unique_col = df.groupby(["column"], as_index=False).size().drop(columns="size")
Con la modalità di ordinamento parziale, non è garantito che l'output delle funzioni DataFrame.head(n)
e
Series.head(n)
sia idempotente in tutte le invocazioni.
Per scaricare un piccolo campione arbitrario di dati, utilizza i metodi DataFrame.peek()
o
Series.peek()
.
Per un tutorial dettagliato in cui utilizzi la proprietà ordering_mode = "partial"
, consulta
questo notebook BigQuery DataFrames che mostra l'utilizzo della modalità di ordinamento parziale.
Risoluzione dei problemi
Errore relativo all'ordine obbligatorio
Alcune funzionalità richiedono un ordine, ad esempio le funzioni DataFrame.head()
e
DataFrame.iloc
. Per un elenco delle funzionalità che richiedono l'ordinamento, consulta la colonna
Richiede ordinamento in
API pandas supportate.
Se non è presente alcuna organizzazione nell'oggetto, l'operazione non va a buon fine con un messaggio OrderRequiredError
come il seguente:
OrderRequiredError: Op iloc requires an ordering. Use .sort_values or .sort_index
to provide an ordering.
Come descritto nel messaggio di errore, puoi specificare un ordinamento utilizzando il metodo
DataFrame.sort_values()
per ordinare in base a una o più colonne. Altre operazioni, come l'operazione
DataFrame.groupby()
, forniscono implicitamente un ordinamento totale per le chiavi del gruppo.
Se non è possibile stabilire che l'ordinamento è completamente stabile per tutte le righe, le operazioni successive potrebbero avvisarti con un messaggio AmbiguousWindowWarning
come il seguente:
AmbiguousWindowWarning: Window ordering may be ambiguous, this can cause unstable
results.
Se il tuo carico di lavoro può gestire risultati non deterministici o se puoi verificare manualmente che l'ordinamento fornito sia un ordinamento totale, puoi filtrare il messaggio AmbiguousWindowWarning
in questo modo:
import warnings import bigframes.exceptions warnings.simplefilter("ignore", category=bigframes.exceptions.AmbiguousWindowWarning)
Errore di indice null
Alcune funzionalità richiedono un indice, ad esempio le proprietà DataFrame.unstack()
e
Series.interpolate()
.Per un elenco delle funzionalità che richiedono un indice, consulta la colonna
Richiede indice in
API pandas supportate.
Quando utilizzi un'operazione che richiede un indice con la modalità di ordinamento parziale, l'operazione genera un messaggio NullIndexError
come il seguente:
NullIndexError: DataFrame cannot perform interpolate as it has no index. Set an index using
set_index.
Come descritto nel messaggio di errore, puoi fornire un indice utilizzando il metodo
DataFrame.set_index()
per ordinare in base a una o più colonne. Altre operazioni, come l'operazione
DataFrame.groupby()
, forniscono implicitamente un indice sul gruppo per chiavi, a meno che non sia impostato il parametro as_index=False
.
Utilizzo della libreria bigframes.pandas
La libreria 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. Per ulteriori informazioni, consulta
API pandas supportate.
L'API bigframes.pandas
offre le seguenti
funzionalità:
Input e output
Puoi accedere ai dati da una serie di origini, tra cui file CSV locali, file Cloud Storage, DataFrame pandas
, modelli BigQuery e funzioni BigQuery, e caricarli in un DataFrame BigQuery DataFrames. Puoi anche creare
tabelle BigQuery da BigQuery DataFrames.
Manipolazione dei dati
Per lo sviluppo puoi utilizzare Python anziché SQL. Puoi sviluppare tutte le manipolazione dei dati BigQuery in Python, eliminando la necessità di passare da un linguaggio all'altro e di provare a acquisire le istruzioni SQL come stringhe di testo. L'API bigframes.pandas
offre oltre 750 funzioni pandas
.
Ecosistema e visualizzazioni di Python
L'API bigframes.pandas
è un gateway per l'intero ecosistema di strumenti Python. L'API supporta operazioni statistiche avanzate e puoi visualizzare le aggregazioni generate dai DataFrame di BigQuery. Puoi anche passare da un DataFrame di BigQuery DataFrames a un DataFrame pandas
con operazioni di campionamento integrate.
Funzioni Python personalizzate
BigQuery DataFrames ti consente di trasformare le funzioni scalari personalizzate in funzioni remote BigQuery . La creazione di una funzione remota nei dataframe BigQuery genera:
Una connessione BigQuery. Per impostazione predefinita viene utilizzata una connessione con il nome
bigframes-default-connection
. Se preferisci, puoi utilizzare una connessione BigQuery preconfigurata, in questo caso la creazione della connessione viene saltata.All'account di servizio per la connessione predefinita viene concesso il ruolo IAM Invoker di Cloud Run (
roles/run.invoker
).Una funzione remota BigQuery che utilizza la funzione cloud (1) tramite la connessione BigQuery (2).
Per un esempio, consulta Creare una funzione remota.
Le connessioni BigQuery vengono create nella stessa posizione della sessione BigQuery DataFrames, utilizzando il nome fornito nella definizione della funzione personalizzata. Per visualizzare e gestire le connessioni:
Seleziona il progetto in cui hai creato la funzione remota.
Nel riquadro Esplora, espandi il progetto e poi le Connessioni esterne.
Le funzioni remote di BigQuery vengono create nel set di dati specificato o in un set di dati anonimo, un tipo di set di dati nascosto. Se non imposti un nome per una funzione remota durante la sua creazione,
BigQuery DataFrames applica un nome predefinito che inizia con il prefisso bigframes
. Per visualizzare e gestire le funzioni remote create in un set di dati specificato dall'utente:
Seleziona il progetto in cui hai creato la funzione remota.
Nel riquadro Explorer, espandi il progetto, il set di dati in cui hai creato la funzione remota e poi le Routine.
Per visualizzare e gestire le funzioni Cloud Run, utilizza la pagina Funzioni e il selettore di progetti per selezionare il progetto in cui hai creato la funzione. Per una facile identificazione, i nomi delle funzioni
create da BigQuery DataFrames sono preceduti da bigframes
.
Puoi ripulire le funzioni remote di BigQuery senza nome e le relative funzioni Cloud Run associate nei seguenti modi:
- Per un
session
BigQuery DataFrames, utilizzasession.close()
. - Per la sessione BigQuery DataFrames predefinita, utilizza
bigframes.pandas.close_session()
. - Per una sessione passata con
session_id
, utilizzabigframes.pandas.clean_up_by_session_id(session_id)
.
Requisiti
Per utilizzare le funzioni remote di BigQuery DataFrames, devi abilitare le seguenti API:
L'API BigQuery (
bigquery.googleapis.com
)L'API BigQuery Connections (
bigqueryconnection.googleapis.com
)L'API Cloud Functions (
cloudfunctions.googleapis.com
)L'API Cloud Run Admin (
run.googleapis.com
)L'API Artifact Registry (
artifactregistry.googleapis.com
)L'API Cloud Build (
cloudbuild.googleapis.com
)L'API Compute Engine (
compute.googleapis.com
)L'API Cloud Resource Manager (
cloudresourcemanager.googleapis.com
)Puoi evitare questo requisito impostando l'opzione
bigframes.pandas.options.bigquery.skip_bq_connection_check
suTrue
, nel qual caso la connessione (predefinita o preconfigurata) viene utilizzata così com'è senza verificare l'esistenza della connessione o le relative autorizzazioni.
Per utilizzare le funzioni remote dei dataframe BigQuery, devi disporre dei seguenti ruoli IAM nel progetto:
BigQuery Data Editor (
roles/bigquery.dataEditor
)Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
)Cloud Functions Developer (
roles/cloudfunctions.developer
)Utente dell'account di servizio (
roles/iam.serviceAccountUser
)Storage Object Viewer (
roles/storage.objectViewer
)Amministratore IAM del progetto (
roles/resourcemanager.projectIamAdmin
) se utilizzi la connessione BigQuery predefinita o Browser (ruoli/browser) se utilizzi una connessione preconfigurata. Questo requisito può essere evitato impostando l'opzionebigframes.pandas.options.bigquery.skip_bq_connection_check
suTrue
, nel qual caso la connessione (predefinita o preconfigurata) verrà utilizzata così com'è senza alcun controllo di esistenza o autorizzazione. Se utilizzi la connessione preconfigurata e salti il controllo di connessione, assicurati che la connessione sia creata nella posizione corretta e che il relativo account di servizio disponga del ruolo Invoker Cloud Run (roles/run.invoker
) nel progetto.
Limitazioni
Le funzioni remote richiedono circa 90 secondi per essere disponibili la prima volta che le crei.
Modifiche banali nel notebook, come l'inserimento di una nuova cella o la ridenominazione di una variabile, potrebbero causare la ricostituzione della funzione remota, anche se queste modifiche non sono correlate al codice della funzione remota.
I DataFrame di BigQuery non distinguono i dati personali inclusi nel codice della funzione remota. Il codice della funzione remota viene serializzato come una casella opaca per eseguirne il deployment come funzione Cloud Run.
Le funzioni Cloud Run (2ª generazione.), le connessioni BigQuery e le funzioni remote BigQuery create da BigQuery DataFrames rimangono in Google Cloud. Se non vuoi conservare queste risorse, devi eliminarle separatamente utilizzando un'interfaccia BigQuery o Cloud Run appropriata.
Un progetto può avere fino a 1000 funzioni Cloud Run (2ª generazione.) contemporaneamente. Consulta le quote delle funzioni Cloud Run per tutti i limiti.
bigframes.pandas
esempi
Gli esempi seguenti mostrano i modi comuni di utilizzare bigframes.pandas
.
Caricare dati da una query o una tabella BigQuery
Puoi creare un DataFrame da una tabella o una query BigQuery nel seguente modo:
Caricare i dati da un file CSV
Puoi creare un DataFrame da un file CSV locale o di Cloud Storage nel seguente modo:
Ispezionare e manipolare i dati
Puoi utilizzare bigframes.pandas
per eseguire operazioni di controllo e calcolo dei dati.
Il seguente esempio di codice mostra come utilizzare bigframes.pandas
per esaminare la colonna body_mass_g
, calcolare la media body_mass
e calcolare la media body_mass
per species
:
Utilizzo della libreria bigframes.ml
Le funzionalità di ML in BigQuery DataFrames ti consentono di pre-elaborare i dati e poi di addestrare i modelli su questi dati. Puoi anche concatenare queste azioni per creare pipeline di dati.
Località di ML
bigframes.ml
supporta le stesse località di BigQuery ML.
La previsione del modello BigQuery ML e altre funzioni di ML sono supportate in tutte le regioni BigQuery. Il supporto per l'addestramento dei modelli varia in base alla regione. Per ulteriori informazioni, consulta Località di BigQuery ML.
Pre-elabora i dati
Crea trasformatori per preparare i dati per l'utilizzo in estimatori (modelli) utilizzando il modulo bigframes.ml.preprocessing e il modulo bigframes.ml.compose. BigQuery DataFrames offre le seguenti trasformazioni:
Utilizza la classe KBinsDiscretizer nel modulo
bigframes.ml.preprocessing
per raggruppare i dati continui in intervalli.Utilizza la classe LabelEncoder nel modulo
bigframes.ml.preprocessing
per normalizzare le etichette target come valori interi.Utilizza la classe MaxAbsScaler nel modulo
bigframes.ml.preprocessing
per scalare ogni caratteristica all'intervallo[-1, 1]
in base al suo valore assoluto massimo.Utilizza la classe MinMaxScaler nel modulo
bigframes.ml.preprocessing
per standardizzare le caratteristiche ridimensionandole in base all'intervallo[0, 1]
.Utilizza la classe StandardScaler nel modulo
bigframes.ml.preprocessing
per standardizzare le funzionalità rimuovendo la media e applicando la scala alla varianza unitaria.Utilizza la classe OneHotEncoder nel modulo
bigframes.ml.preprocessing
per trasformare i valori categorici in formato numerico.Utilizza la classe ColumnTransformer nel modulo
bigframes.ml.compose
per applicare i trasformatori alle colonne dei DataFrame.
addestramento dei modelli
Crea estimatori per addestrare i modelli in BigQuery DataFrames.
Modelli di clustering
Crea gli stimatori per i modelli di clustering utilizzando il modulo bigframes.ml.cluster.
- Utilizza la classe KMeans per creare modelli di clustering K-means. Utilizza questi modelli per la segmentazione dei dati. Ad esempio, identificare i segmenti di clienti. K-means è una tecnica di apprendimento non supervisionato, pertanto l'addestramento del modello non richiede etichette o suddivisione dei dati per l'addestramento o la valutazione.
Puoi utilizzare il modulo bigframes.ml.cluster
per creare stimatori per i modelli di clustering.
Il seguente esempio di codice mostra come utilizzare la classe bigframes.ml.cluster KMeans
per creare un modello di clustering k-means per la segmentazione dei dati:
Modelli di decomposizione
Crea gli stimatori per i modelli di decomposizione utilizzando il modulo bigframes.ml.decomposition.
- Utilizza la classe PCA per creare modelli di analisi delle componenti principali (PCA). Utilizza questi modelli per calcolare i componenti principali e utilizzarli per eseguire una variazione di base nei dati. Ciò consente di ridurre la dimensionalità proiettando ogni punto di dati solo sulle prime componenti principali per ottenere dati di dimensioni inferiori, preservando al contempo il maggior numero possibile di variazioni dei dati.
Modelli di insieme
Crea gli stimatori per i modelli di ensemble utilizzando il modulo bigframes.ml.ensemble.
Utilizza la classe RandomForestClassifier per creare modelli di classificatori di foreste casuali. Utilizza questi modelli per costruire alberi decisionali con più metodi di apprendimento per la classificazione.
Utilizza la classe RandomForestRegressor per creare modelli di regressione con foresta casuale. Utilizza questi modelli per costruire alberi decisionali con più metodi di apprendimento per la regressione.
Utilizza la classe XGBClassifier per creare modelli di classificatori ad albero con boosting del gradiente. Utilizza questi modelli per costruire in modo additivo più alberi decisionali di metodi di apprendimento per la classificazione.
Utilizza la classe XGBRegressor per creare modelli di regressione con alberi di boosting del gradiente. Utilizza questi modelli per costruire in modo additivo più alberi decisionali di metodi di apprendimento per la regressione.
Modelli di previsione
Crea gli stimatori per i modelli di previsione utilizzando il modulo bigframes.ml.forecasting.
- Utilizza la classe ARIMAPlus per creare modelli di previsione delle serie temporali.
Modelli importati
Crea gli stimatori per i modelli importati utilizzando il modulo bigframes.ml.imported.
Utilizza la classe ONNXModel per importare i modelli Open Neural Network Exchange (ONNX).
Utilizza la classe TensorFlowModel per importare i modelli TensorFlow.
Utilizza la classe XGBoostModel per importare i modelli XGBoostModel.
Modelli lineari
Crea gli stimatori per i modelli lineari utilizzando il modulo bigframes.ml.linear_model.
Utilizza la classe LinearRegression per creare modelli di regressione lineare. Utilizza questi modelli per le previsioni. Ad esempio, prevedere le vendite di un articolo in un determinato giorno.
Utilizza la classe LogisticRegression per creare modelli di regressione logistica. Utilizza questi modelli per la classificazione di due o più valori possibili, ad esempio se un input è
low-value
,medium-value
ohigh-value
.
Il seguente esempio di codice mostra come utilizzare bigframes.ml
per eseguire le seguenti operazioni:
- Carica i dati da BigQuery
- Pulisci e prepara i dati di addestramento
- Crea e applica un modello di regressione
bigframes.ml.LinearRegression
Modelli linguistici di grandi dimensioni
Crea gli stimatori per gli LLM utilizzando il modulo bigframes.ml.llm.
Utilizza la classe GeminiTextGenerator per creare modelli di generatori di testo Gemini. Utilizza questi modelli per le attività di generazione di testo.
Utilizza la classe PaLM2TextGenerator per creare modelli di generatori di testo PaLM2. Utilizza questi modelli per le attività di generazione di testo.
Utilizza la classe PaLM2TextEmbeddingGenerator per creare modelli di generatori di incorporamenti di testo PaLM2. Utilizza questi modelli per le attività di generazione di embedding di testo.
Puoi utilizzare il modulo bigframes.ml.llm
per creare stimatori per modelli linguistici di grandi dimensioni (LLM) remoti.
Il seguente esempio di codice mostra l'utilizzo della classe bigframes.ml.llm
GeminiTextGenerator
per creare un modello Gemini per la generazione di codice:
Modelli remoti
Per utilizzare i modelli ML di BigQuery DataFrames remoti (bigframes.ml.remote o bigframes.ml.llm), devi abilitare le seguenti API:
- L'API BigQuery (
bigquery.googleapis.com
) - L'API BigQuery Connections (
bigqueryconnection.googleapis.com
) - L'API Vertex AI (
aiplatform.googleapis.com
) - L'API Cloud Resource Manager (
cloudresourcemanager.googleapis.com
)Puoi evitare questo requisito impostando l'opzione
bigframes.pandas.options.bigquery.skip_bq_connection_check
suTrue
, nel qual caso la connessione (predefinita o preconfigurata) viene utilizzata così com'è senza verificare l'esistenza della connessione o le relative autorizzazioni.
Inoltre, devi disporre dei seguenti ruoli IAM nel progetto:
- Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
) - Amministratore IAM del progetto (
roles/resourcemanager.projectIamAdmin
) se utilizzi la connessione BigQuery predefinita o Browser (roles/browser) se utilizzi una connessione preconfigurata. Questo requisito può essere evitato impostando l'opzionebigframes.pandas.options.bigquery.skip_bq_connection_check
suTrue
, in questo caso la connessione (predefinita o preconfigurata) verrà utilizzata così com'è senza alcun controllo di esistenza o autorizzazione. Se utilizzi la connessione preconfigurata e salti il controllo di connessione, assicurati che la connessione sia creata nella posizione corretta e che il relativo account di servizio abbia il ruolo Utente Vertex AI (roles/aiplatform.user
) nel progetto.
La creazione di un modello remoto in BigQuery DataFrames crea una connessione BigQuery.
Per impostazione predefinita viene utilizzata una connessione con il nome bigframes-default-connection
.
Se preferisci, puoi utilizzare una connessione BigQuery preconfigurata, in tal caso la creazione della connessione viene saltata. All'account di servizio per la connessione predefinita viene concesso il ruolo IAM Utente Vertex AI (roles/aiplatform.user
).
Creare pipeline
Crea le pipeline ML utilizzando il modulo bigframes.ml.pipeline. Le pipeline ti consentono di assemblare diversi passaggi di ML da sottoporre a convalida incrociata impostando parametri diversi. In questo modo, il codice viene semplificato e puoi implementare insieme i passaggi di preelaborazione dei dati e un estimatore.
Utilizza la classe Pipeline per creare una pipeline di trasformazioni con un estimatore finale.