Kis*_*mar 2 python google-bigquery table-partitioning
有人能够解释如何在使用 JobConfig 在 google Bigquery 中使用加载作业时创建日期分区表。
我无法理解文档,如果有人可以用示例进行解释,那将非常有帮助。
编辑:所以我想我想感谢@irvifa,但我仍然无法创建一个TimePartitioned Table,这是我尝试使用的代码。
import pandas
from google.cloud import bigquery
def load_df(self, df):
  project_id="ProjectID"
  dataset_id="Dataset"
  table_id="TableName"
  table_ref=project_id+"."+dataset_id+"."+table_id
  time_partitioning = bigquery.table.TimePartitioning(field="PartitionColumn")
  job_config = bigquery.LoadJobConfig(
                         schema="Schema",
                         destinationTable=table_ref
                         write_disposition="WRITE_TRUNCATE",
                         timePartitioning=time_partitioning
                         )
  Job = Client.load_table_from_dataframe(df, table_ref, 
                                         job_config=job_config)
  Job.result()
Run Code Online (Sandbox Code Playgroud)
    我不知道它是否会有所帮助,但您可以使用以下示例来加载带分区的作业:
from datetime import datetime, time
from concurrent import futures
import math
from pathlib import Path
from google.cloud import bigquery
def run_query(self, query_job_config):
  time_partitioning = bigquery.table.TimePartitioning(field="partition_date")
  job_config = bigquery.QueryJobConfig()
  job_config.destination = query_job_config['destination_dataset_table']
  job_config.time_partitioning = time_partitioning
  job_config.use_legacy_sql = False
  job_config.allow_large_results = True
  job_config.write_disposition = 'WRITE_APPEND'
  sql = query_job_config['sql']
  query_job = self.client.query(sql, job_config=job_config)
  query_job.result()
Run Code Online (Sandbox Code Playgroud)