Menggunakan DataFrame BigQuery

Untuk mendapatkan dukungan selama pratinjau, kirim email ke bigframes-feedback@google.com.

Dokumen ini menjelaskan cara menggunakan DataFrames BigQuery untuk menganalisis dan memanipulasi data di notebook BigQuery.

BigQuery DataFrames adalah library klien Python yang dapat Anda gunakan untuk menganalisis data dan melakukan tugas machine learning di notebook BigQuery.

DataFrame BigQuery terdiri dari bagian berikut:

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  4. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  5. Pastikan BigQuery API diaktifkan.

    Mengaktifkan API

    Jika Anda membuat project baru, BigQuery API akan otomatis diaktifkan.

Izin yang diperlukan

Untuk menggunakan DataFrames BigQuery di notebook BigQuery, Anda memerlukan peran Identity and Access Management (IAM) berikut:

Membuat notebook

Ikuti petunjuk di Membuat notebook dari editor BigQuery untuk membuat notebook baru.

Menyiapkan opsi DataFrames BigQuery

Setelah penginstalan, Anda harus menentukan lokasi dan project tempat Anda ingin menggunakan DataFrame BigQuery.

Anda dapat menentukan lokasi dan proyek di {i>notebook<i} Anda dengan cara berikut:

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

Gunakan bigframes.pandas

bigframes.pandas API menyediakan API mirip pandas yang dapat Anda gunakan untuk menganalisis dan memanipulasi data di BigQuery. bigframes.pandas API bersifat skalabel untuk mendukung pemrosesan data BigQuery berukuran terabyte, dan menggunakan mesin kueri BigQuery untuk melakukan penghitungan.

bigframes.pandas API menyediakan kemampuan berikut:

Input dan output
Anda dapat mengakses data dari berbagai sumber, termasuk file CSV lokal, file Cloud Storage, pandas DataFrames, model BigQuery, dan fungsi BigQuery, serta memuatnya ke dalam DataFrame BigQuery. Anda juga dapat membuat tabel BigQuery dari BigQuery DataFrames.
Manipulasi data
Anda dapat menggunakan Python, bukan SQL, untuk pengembangan Anda. Anda dapat mengembangkan semua manipulasi data BigQuery di Python, sehingga tidak perlu beralih antarbahasa dan mencoba menangkap pernyataan SQL sebagai string teks. bigframes.pandas API menawarkan lebih dari 250 fungsi pandas.
Ekosistem dan visualisasi python
bigframes.pandas API adalah gerbang menuju ekosistem alat Python yang lengkap. API ini mendukung operasi statistik lanjutan, dan Anda dapat memvisualisasikan agregasi yang dihasilkan dari DataFrame BigQuery. Anda juga dapat beralih dari DataFrame BigQuery ke DataFrame pandas dengan operasi pengambilan sampel bawaan.
Fungsi Python kustom
Anda dapat menggunakan fungsi dan paket Python kustom. Dengan bigframes.pandas, Anda dapat men-deploy fungsi jarak jauh yang menjalankan fungsi Python skalar pada skala BigQuery. Anda dapat mempertahankan fungsi ini kembali ke BigQuery sebagai rutinitas SQL, lalu menggunakannya seperti fungsi SQL.

Memuat data dari tabel atau kueri BigQuery

Anda dapat membuat DataFrame dari tabel atau kueri BigQuery dengan cara berikut:

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

Memuat data dari file CSV

Anda dapat membuat DataFrame dari file CSV lokal atau Cloud Storage dengan cara berikut:

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

Memeriksa dan memanipulasi data

Anda dapat menggunakan bigframes.pandas untuk melakukan operasi penghitungan dan pemeriksaan data.

Contoh kode berikut menunjukkan penggunaan bigframes.pandas untuk memeriksa kolom body_mass_g, menghitung rata-rata body_mass, dan menghitung rata-rata body_mass dengan 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)
)

Gunakan bigframes.ml

API mirip scikit-learn bigframes.ml memungkinkan Anda membuat beberapa jenis model machine learning.

Regresi

Contoh kode berikut menunjukkan penggunaan bigframes.ml untuk melakukan hal berikut:

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)

Dukungan

Anda dapat menggunakan modul bigframes.ml.cluster untuk membuat estimator untuk model pengelompokan.

Contoh kode berikut menunjukkan penggunaan class bigframes.ml.cluster KMeans dalam membuat model pengelompokan K-means untuk segmentasi data:

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)

Model jarak jauh LLM

Anda dapat menggunakan modul bigframes.ml.llm untuk membuat estimator untuk model bahasa besar (LLM) jarak jauh.

Contoh kode berikut menunjukkan penggunaan class bigframes.ml.llm PaLM2TextGenerator dalam membuat model generator teks PaLM2 untuk pembuatan teks:

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)

Harga

BigQuery DataFrames adalah library Python open source. Kode sumber tersedia untuk dilihat dan didownload menggunakan GitHub. Anda dapat menginstal library dari PyPI. Library mungkin juga tersedia di pengelola paket lain yang dikelola oleh komunitas.

BigQuery DataFrames menggunakan BigQuery,Cloud Functions, Vertex AI, dan layanan Google Cloud lainnya, yang dikenai biaya sendiri. Selama penggunaan reguler, library menyimpan data di tabel BigQuery tingkat menengah, yang secara default memiliki durasi tujuh hari.

Langkah selanjutnya