1
def partition(dataset1, dataset2):
    try:
        client.get_dataset(dataset2)
        print("Dataset {} already exists".format(dataset2))
    except NotFound:
         print("Dataset {} not found".format(dataset2))
         createDataset(dataset2)
    table = client.get_table(dataset1) # get the source dataset
    partition_column = table.time_partitioning.field #get the column name

I tried using get_table description but it dint work out it was returning just none. And I got the docs link from googleapi link here How to get what type of partitioning is used by the table

Max Daniel
  • 27
  • 2
  • Please check the values of `table.partitioning_type` and `table.time_partitioning.field` together. p.s. make sure your function returns the value. – Jiho Choi Oct 28 '22 at 06:15

1 Answers1

1

You can use the following script to get the partition type :

from google.cloud import bigquery

if __name__ == '__main__':
    # Construct a BigQuery client object.
    client = bigquery.Client()

    # table_id = 'your-project.your_dataset.your_table'

    table = client.get_table('your-project.your_dataset.your_table')  # Make an API request.

    # View table properties
    print(
        "Got table '{}.{}.{}'.".format(table.project, table.dataset_id, table.table_id)
    )
    print("Table schema: {}".format(table.schema))
    print("Table description: {}".format(table.description))
    print("Table has {} rows".format(table.num_rows))

    # Partition type and field.
    partition_field: str = table.time_partitioning.field
    partition_type: str = table.time_partitioning.type_

    print("Table partition field {}".format(partition_field))
    print("Table partition type {}".format(partition_type))
  • table.time_partitioning.field gives the partition column name
  • table.time_partitioning.type_ gives the partition type
Mazlum Tosun
  • 5,761
  • 1
  • 9
  • 23