Google BigQuery
要从 GBQ 读取或写入数据,需要额外的依赖项
$ pip install google-cloud-bigquery
读取
我们可以这样将查询加载到 DataFrame
中
from_arrow
· fsspec 功能可用 · pyarrow 功能可用
import polars as pl
from google.cloud import bigquery
client = bigquery.Client()
# Perform a query.
QUERY = (
'SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013` '
'WHERE state = "TX" '
'LIMIT 100')
query_job = client.query(QUERY) # API request
rows = query_job.result() # Waits for query to finish
df = pl.from_arrow(rows.to_arrow())
写入
from google.cloud import bigquery
client = bigquery.Client()
# Write DataFrame to stream as parquet file; does not hit disk
with io.BytesIO() as stream:
df.write_parquet(stream)
stream.seek(0)
parquet_options = bigquery.ParquetOptions()
parquet_options.enable_list_inference = True
job = client.load_table_from_file(
stream,
destination='tablename',
project='projectname',
job_config=bigquery.LoadJobConfig(
source_format=bigquery.SourceFormat.PARQUET,
parquet_options=parquet_options,
),
)
job.result() # Waits for the job to complete